本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種動態(tài)鏈接庫文件的注入方法、裝置及終端設(shè)備。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)發(fā)展,病毒,木馬等惡意程序技術(shù)層出不窮,系統(tǒng)安全軟件對惡意程序的攔截方案也日益更新;
現(xiàn)有系統(tǒng)安全軟件中的網(wǎng)購保護模塊khmpg.dll,是用于用戶網(wǎng)購保護功能的動態(tài)鏈接庫文件(Dynamic Link Library,簡稱DLL)模塊。該模塊會由系統(tǒng)安全軟件中的服務(wù)程序注入到網(wǎng)絡(luò)瀏覽器的進程中,保護網(wǎng)絡(luò)瀏覽器的用戶網(wǎng)購等支付安全。但是,有些惡意軟件使用其惡意簽名的驅(qū)動程序,加載到系統(tǒng)中擁有最高權(quán)限,從而攔截系統(tǒng)安全軟件的網(wǎng)購保護模塊注入到網(wǎng)絡(luò)瀏覽器進程。例如:現(xiàn)有技術(shù)方案中khmpg.dll注入到網(wǎng)絡(luò)瀏覽器進程過程是通過windows函數(shù)來實現(xiàn);具體可以通過創(chuàng)建遠程線程函數(shù)CretaeRemoteThread向網(wǎng)絡(luò)瀏覽器進程申請創(chuàng)建一個遠程線程,然后調(diào)用加載動態(tài)鏈接庫函數(shù)LoadLibray函數(shù)加載DLL,這樣就可以注入到網(wǎng)絡(luò)進程中。
然而,在現(xiàn)有系統(tǒng)安全軟件中網(wǎng)購保護模塊注入到網(wǎng)絡(luò)瀏覽器進程的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下技術(shù)問題:
由于惡意軟件使用其惡意簽名的驅(qū)動程序,加載到系統(tǒng)中擁有最高權(quán)限,從而惡意軟件可以通過其驅(qū)動程序阻止CretaeRemoteThread向網(wǎng)絡(luò)瀏覽器進程申請創(chuàng)建一個遠程線程,從而使得現(xiàn)有技術(shù)方案的系統(tǒng)安全軟件中khmpg.dll模塊無法注入,導(dǎo)致網(wǎng)絡(luò)瀏覽器的用戶支付安全無法保障,影響系統(tǒng)安全。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供一種動態(tài)鏈接庫文件的注入方法、裝置及終端設(shè)備,能夠通過在調(diào)用異步過程調(diào)用回調(diào)函數(shù)的過程中加載待加載的動態(tài)鏈接庫文件解決現(xiàn)有的網(wǎng)購保護模塊無法注入的問題。
第一方面,本發(fā)明實施例提供一種動態(tài)鏈接庫文件的注入方法,包括:
獲取瀏覽器的進程信息結(jié)構(gòu);
根據(jù)所述瀏覽器的進程信息結(jié)構(gòu),將異步過程調(diào)用回調(diào)函數(shù)插入所述瀏覽器的進程中;
獲取待加載動態(tài)鏈接庫的文件路徑;
根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)及所述待加載動態(tài)鏈接庫的文件路徑,將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中。
結(jié)合第一方面,在第一方面的第一種實施方式中,所述瀏覽器的進程信息結(jié)構(gòu)包括瀏覽器進程環(huán)境塊,瀏覽器線程環(huán)境塊;
所述根據(jù)所述瀏覽器的進程信息結(jié)構(gòu),將異步過程調(diào)用回調(diào)函數(shù)插入所述瀏覽器的進程中的步驟包括:
根據(jù)所述瀏覽器進程環(huán)境塊,為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間;
根據(jù)所述瀏覽器線程環(huán)境塊,定位所述瀏覽器的進程對應(yīng)的線程隊列;
將所述異步過程調(diào)用回調(diào)函數(shù)插入到所述瀏覽器的進程對應(yīng)的線程隊列中。
結(jié)合第一方面的第一種實施方式,在第一方面的第二種實施方式中,所述根據(jù)所述瀏覽器的進程信息結(jié)構(gòu),將異步過程調(diào)用回調(diào)函數(shù)插入所述瀏覽器的進程中的步驟還包括:
根據(jù)所述瀏覽器線程環(huán)境塊,獲取所述瀏覽器的進程對應(yīng)的線程隊列的狀態(tài)信息;
將所述瀏覽器的進程對應(yīng)的線程隊列的狀態(tài)信息設(shè)置為警報狀態(tài)。
結(jié)合第一方面的第一或第二種實施方式,在第一方面的第三種實施方式中,所述根據(jù)所述瀏覽器進程環(huán)境塊,為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間的步驟,具體包括:
根據(jù)所述瀏覽器進程環(huán)境塊,將系統(tǒng)內(nèi)核中央處理器的執(zhí)行指針附加到所述瀏覽器的進程;
在所述瀏覽器的進程的存儲空間內(nèi),為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間。
結(jié)合第一方面的第三種實施方式,在第一方面的第四種實施方式中,所述根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)及所述待加載動態(tài)鏈接庫的文件路徑,將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中的步驟包括:
根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)申請的存儲空間,獲取所述異步過程調(diào)用回調(diào)函數(shù);
根據(jù)所述異步過程調(diào)用回調(diào)函數(shù),查找所述瀏覽器的進程待加載動態(tài)鏈接庫的基地址;
根據(jù)所述待加載動態(tài)鏈接庫的基地址,定位所述待加載動態(tài)鏈接庫的加載函數(shù);
將所述待加載動態(tài)鏈接庫的文件路徑作為參數(shù),調(diào)用所述待加載動態(tài)鏈接庫的加載函數(shù);
將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中。
第二方面,本發(fā)明實施例提供一種動態(tài)鏈接庫文件的注入裝置,包括:
信息獲取單元,用于獲取瀏覽器的進程信息結(jié)構(gòu);
插入單元,用于根據(jù)所述瀏覽器的進程信息結(jié)構(gòu),將異步過程調(diào)用回調(diào)函數(shù)插入所述瀏覽器的進程中;
路徑獲取單元,用于獲取待加載動態(tài)鏈接庫的文件路徑;
加載單元,用于根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)及所述待加載動態(tài)鏈接庫的文件路徑,將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中。
結(jié)合第二方面,在第二方面的第一種實施方式中,所述瀏覽器的進程信息結(jié)構(gòu)包括瀏覽器進程環(huán)境塊,瀏覽器線程環(huán)境塊;
所述插入單元,具體包括:
空間申請子單元,用于根據(jù)所述瀏覽器進程環(huán)境塊,為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間;
定位子單元,用于根據(jù)所述瀏覽器線程環(huán)境塊,定位所述瀏覽器的進程對應(yīng)的線程隊列;
插入子單元,用于將所述異步過程調(diào)用回調(diào)函數(shù)插入到所述瀏覽器的進程對應(yīng)的線程隊列中。
結(jié)合第二方面的第一種實施方式,在第二方面的第二種實施方式中,所述插入單元,還包括:
信息獲取子單元,用于根據(jù)所述瀏覽器線程環(huán)境塊,獲取所述瀏覽器的進程對應(yīng)的線程隊列的狀態(tài)信息;
設(shè)置子單元,用于將所述瀏覽器的進程對應(yīng)的線程隊列的狀態(tài)信息設(shè)置為警報狀態(tài)。
結(jié)合第二方面的第一或第二種實施方式,在第二方面的第三種實施方式中,所述空間申請子單元,具體還用于根據(jù)所述瀏覽器進程環(huán)境塊,將系統(tǒng)內(nèi)核中央處理器的執(zhí)行指針附加到所述瀏覽器的進程;在所述瀏覽器的進程的存儲空間內(nèi),為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間。
結(jié)合第二方面的第三種實施方式,在第二方面的第四種實施方式中,所述加載單元,具體包括:
函數(shù)獲取子單元,用于根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)申請的存儲空間,獲取所述異步過程調(diào)用回調(diào)函數(shù);
查找子單元,用于根據(jù)所述異步過程調(diào)用回調(diào)函數(shù),查找所述瀏覽器的進程待加載動態(tài)鏈接庫的基地址;
調(diào)用子單元,用于根據(jù)所述待加載動態(tài)鏈接庫的基地址,定位所述待加載動態(tài)鏈接庫的加載函數(shù);將所述待加載動態(tài)鏈接庫的文件路徑作為參數(shù),調(diào)用所述待加載動態(tài)鏈接庫的加載函數(shù);
加載子單元,用于將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中。
第三方面,本發(fā)明實施例提供一種終端設(shè)備,所述終端設(shè)備包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲器設(shè)置在電路板上;電源電路,用于為上述終端設(shè)備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一所述的動態(tài)鏈接庫文件的注入方法。
本發(fā)明實施例提供的一種動態(tài)鏈接庫文件的注入方法、裝置及終端設(shè)備,能夠通過將所述異步過程調(diào)用函數(shù)插入到系統(tǒng)瀏覽器的進程對應(yīng)的線程隊列,使得系統(tǒng)在執(zhí)行進程對應(yīng)的線程隊列時,調(diào)用所述異步過程調(diào)用回調(diào)函數(shù),待加載動態(tài)鏈接庫的文件被加載解決了現(xiàn)有的網(wǎng)購保護模塊無法注入,導(dǎo)致網(wǎng)絡(luò)瀏覽器的用戶支付安全無法保障,影響系統(tǒng)安全的問題。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明的動態(tài)鏈接庫文件的注入方法實施例一的流程圖;
圖2為本發(fā)明的動態(tài)鏈接庫文件的注入方法實施例二的流程圖;
圖3為本發(fā)明的動態(tài)鏈接庫文件的注入裝置實施例一的結(jié)構(gòu)示意圖;
圖4為本發(fā)明的動態(tài)鏈接庫文件的注入裝置實施例二的結(jié)構(gòu)示意圖;
圖5為本發(fā)明終端設(shè)備一個實施例的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明實施例進行詳細描述。
應(yīng)當(dāng)明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明的動態(tài)鏈接庫文件的注入方法實施例一的流程圖,如圖1所示,本實施例的方法可以包括:
步驟101、獲取瀏覽器的進程信息結(jié)構(gòu)。
本實施例中,所述瀏覽器的進程信息結(jié)構(gòu)包括:瀏覽器進程環(huán)境塊,瀏覽器線程環(huán)境塊。例如:在運行用網(wǎng)購保護模塊khmpg.dll的驅(qū)動程序過程中,可以通過調(diào)用查詢進程信息ZwQuerySystemInformation和由線程id獲取線程結(jié)構(gòu)PsLookupThreadByThreadId的內(nèi)核函數(shù)來獲取所述瀏覽器的進程信息結(jié)構(gòu)。
步驟102、根據(jù)所述瀏覽器的進程信息結(jié)構(gòu),將異步過程調(diào)用回調(diào)函數(shù)插入所述瀏覽器的進程中。
本實施例中,將瀏覽器進程環(huán)境塊做為參數(shù),通過調(diào)用系統(tǒng)內(nèi)核函數(shù)中的初始化異步過程調(diào)用函數(shù)KeAttachProcess將系統(tǒng)內(nèi)核中央處理器的執(zhí)行指針附加到所述瀏覽器的進程中;在所述瀏覽器的進程的存儲空間內(nèi),通過調(diào)用系統(tǒng)內(nèi)核函數(shù)中的申請?zhí)摂M內(nèi)存空間函數(shù)ZwAllocateVirtualMemory為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間,該存儲空間用于存放異步過程調(diào)用回調(diào)函數(shù)。通過所述瀏覽器線程環(huán)境塊,定位到所述瀏覽器的進程對應(yīng)的線程隊列及其狀態(tài)信息UserApcPending,將所述異步過程調(diào)用回調(diào)函數(shù)插入到所述瀏覽器的進程對應(yīng)的線程隊列中。
例如:可以通過調(diào)用系統(tǒng)內(nèi)核函數(shù)KeInitializeApc將所述異步過程調(diào)用函數(shù)插入到所述瀏覽器的進程對應(yīng)的線程隊列中;并將所述瀏覽器的進程對應(yīng)的線程隊列的狀態(tài)信息設(shè)置為警報狀態(tài),例如:將所述狀態(tài)信息UserApcPending值強制置為1。這樣當(dāng)前瀏覽器線程的隊列為警報狀態(tài)。所述警報狀態(tài)的線程隊列,才可以被中央處理器所優(yōu)先處理。
由于所述異步過程調(diào)用函數(shù)插入到所述警報狀態(tài)的所述瀏覽器的進程所對應(yīng)的線程隊列,所以在系統(tǒng)線程切換調(diào)度時,會優(yōu)先處理所述異步過程調(diào)用函數(shù),調(diào)用所述異步過程調(diào)用回調(diào)函數(shù)。
步驟103、獲取待加載動態(tài)鏈接庫的文件路徑。
本實施例中,所述待加載動態(tài)鏈接庫的文件路徑是在異步過程調(diào)用回調(diào)函數(shù)中獲取。例如:設(shè)待加載動態(tài)鏈接庫文件為網(wǎng)購保護模塊khmpg.dll。所述獲取待加載動態(tài)鏈接庫的文件路徑過程為:獲取所述網(wǎng)購保護模塊khmpg.dll的目錄。然后,拼接所述網(wǎng)購保護模塊khmpg.dll的文件名,獲得所述待加載動態(tài)鏈接庫的文件路徑。
步驟104、根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)及所述待加載動態(tài)鏈接庫的文件路徑,將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中。
本實施例中,根據(jù)所述異步過程調(diào)用回調(diào)函數(shù),查找所述瀏覽器的進程待加載動態(tài)鏈接庫的基地址;根據(jù)所述動態(tài)鏈接庫的基地址,定位動態(tài)鏈接庫加載函數(shù);將所述待加載動態(tài)鏈接庫文件路徑作為參數(shù),調(diào)用所述動態(tài)鏈接庫加載函數(shù);將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中,從而實現(xiàn)待加載動態(tài)鏈接庫文件注入到瀏覽器的進程中。
本發(fā)明實施例提供的一種動態(tài)鏈接庫文件的注入方法,能夠通過將所述異步過程調(diào)用函數(shù)插入到系統(tǒng)瀏覽器的進程對應(yīng)的線程隊列,使得系統(tǒng)在執(zhí)行進程對應(yīng)的線程隊列時,調(diào)用所述異步過程調(diào)用回調(diào)函數(shù),待加載動態(tài)鏈接庫的文件被加載解決現(xiàn)有的網(wǎng)購保護模塊無法注入,導(dǎo)致網(wǎng)絡(luò)瀏覽器的用戶支付安全無法保障,影響系統(tǒng)安全的問題。
圖2為本發(fā)明的動態(tài)鏈接庫文件的注入方法實施例二的流程圖,如圖2所示,本實施例的方法可以包括:
步驟201、獲取瀏覽器的進程信息結(jié)構(gòu);所述瀏覽器的進程信息結(jié)構(gòu)包括瀏覽器進程環(huán)境塊,瀏覽器線程環(huán)境塊。
本實施例中,所述獲取瀏覽器的進程信息結(jié)構(gòu)的過程和上述方法實施例的步驟101類似,此處不再贅述。
步驟202、根據(jù)所述瀏覽器進程環(huán)境塊,為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間。
本實施例中,將瀏覽器進程環(huán)境塊做為參數(shù),通過調(diào)用系統(tǒng)內(nèi)核函數(shù)KeAttachProcess將系統(tǒng)內(nèi)核中央處理器的執(zhí)行指針附加到所述瀏覽器的進程中。在所述瀏覽器的進程的存儲空間內(nèi),通過調(diào)用系統(tǒng)內(nèi)核函數(shù)ZwAllocateVirtualMemory為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間。
步驟203、根據(jù)所述瀏覽器線程環(huán)境塊,定位所述瀏覽器的進程對應(yīng)的線程隊列,將所述異步過程調(diào)用回調(diào)函數(shù)插入到所述瀏覽器的進程對應(yīng)的線程隊列中。
本實施例中,可以通過所述瀏覽器線程環(huán)境塊,定位到所述瀏覽器的線程隊列及其狀態(tài)信息UserApcPending,將所述異步過程調(diào)用回調(diào)函數(shù)插入到所述瀏覽器的進程對應(yīng)的線程隊列中。例如:可以通過調(diào)用系統(tǒng)內(nèi)核函數(shù)KeInitializeApc將所述異步過程調(diào)用函數(shù)插入到所述瀏覽器的線程隊列中。本實施例還將所述瀏覽器的進程對應(yīng)的線程隊列的狀態(tài)信息設(shè)置為警報狀態(tài),例如:將所述狀態(tài)信息UserApcPending值強制置為1。這樣當(dāng)前瀏覽器線程的隊列為警報狀態(tài),才可以被中央處理器所優(yōu)先處理。由于所述瀏覽器的線程隊列已經(jīng)被設(shè)置為警報狀態(tài),所以異步過程調(diào)用函數(shù)將會被系統(tǒng)優(yōu)先處理。
步驟204、獲取待加載動態(tài)鏈接庫的文件路徑。
本實施例中,所述待加載動態(tài)鏈接庫的文件路徑是在異步過程調(diào)用回調(diào)函數(shù)中獲取。例如:設(shè)待加載動態(tài)鏈接庫文件為網(wǎng)購保護模塊khmpg.dll。所述獲取待加載動態(tài)鏈接庫的文件路徑過程為:獲取所述網(wǎng)購保護模塊khmpg.dll的目錄。然后,拼接所述網(wǎng)購保護模塊khmpg.dll的文件名,獲取所述待加載動態(tài)鏈接庫的文件路徑。
步驟205、根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)及所述待加載動態(tài)鏈接庫的文件路徑,將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中。
本實施例中,該步驟的具體實現(xiàn)流程具體為:根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)申請的存儲空間,獲取所述異步過程調(diào)用回調(diào)函數(shù);根據(jù)所述異步過程調(diào)用回調(diào)函數(shù),查找所述瀏覽器的進程待加載動態(tài)鏈接庫的基地址。例如:設(shè)所述異步過程調(diào)用回調(diào)函數(shù)為函數(shù)InjectDll。在函數(shù)InjectDll中,能夠查找瀏覽器的進程待加載動態(tài)鏈接庫ntdll.dll的基地址。根據(jù)所述待加載動態(tài)鏈接庫的基地址,定位所述待加載動態(tài)鏈接庫的加載函數(shù)。例如:通過所述基地址可方便定位到待加載動態(tài)鏈接庫的加載函數(shù)LdrLoadDll。所述加載函數(shù)LdrLoadDll是動態(tài)鏈接庫ntdll.dll導(dǎo)出的一個函數(shù),用于加載DLL模塊。將所述待加載動態(tài)鏈接庫的文件路徑作為參數(shù),調(diào)用所述待加載動態(tài)鏈接庫的加載函數(shù)。將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中。
本發(fā)明實施例提供的一種動態(tài)鏈接庫文件的注入方法,能夠通過將所述異步過程調(diào)用函數(shù)插入到系統(tǒng)瀏覽器的進程對應(yīng)的線程隊列,且該隊列信息狀態(tài)為警報狀態(tài),這樣使得系統(tǒng)的線程切換調(diào)度時,優(yōu)先執(zhí)行該警報狀態(tài)下的線程隊列,從而調(diào)用所述異步過程調(diào)用回調(diào)函數(shù),實現(xiàn)待加載動態(tài)鏈接庫的文件加載,解決現(xiàn)有的網(wǎng)購保護模塊無法注入,導(dǎo)致網(wǎng)絡(luò)瀏覽器的用戶支付安全無法保障,影響系統(tǒng)安全的問題。
圖3為本發(fā)明的動態(tài)鏈接庫文件的注入裝置實施例一的結(jié)構(gòu)示意圖,如圖3所示,本實施例的裝置可以包括:信息獲取單元11,插入單元13,路徑獲取單元15和加載單元17。其中,信息獲取單元11,用于獲取瀏覽器的進程信息結(jié)構(gòu);插入單元13,用于根據(jù)所述瀏覽器的進程信息結(jié)構(gòu),將異步過程調(diào)用回調(diào)函數(shù)插入所述瀏覽器的進程中;路徑獲取單元15,用于獲取待加載動態(tài)鏈接庫的文件路徑;加載單元17,用于根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)及所述待加載動態(tài)鏈接庫的文件路徑,將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中。
本實施例的裝置,可以用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
圖4為本發(fā)明的動態(tài)鏈接庫文件的注入裝置實施例二的結(jié)構(gòu)示意圖,如圖4所示,本實施例的裝置在圖3所示裝置結(jié)構(gòu)的基礎(chǔ)上,進一步地,所述瀏覽器的進程信息結(jié)構(gòu)包括瀏覽器進程環(huán)境塊,瀏覽器線程環(huán)境塊。
所述插入單元13,具體還包括:空間申請子單元131,用于根據(jù)所述瀏覽器進程環(huán)境塊,為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間;定位子單元132,用于根據(jù)所述瀏覽器線程環(huán)境塊,定位所述瀏覽器的進程對應(yīng)的線程隊列;插入子單元133,用于將所述異步過程調(diào)用回調(diào)函數(shù)插入到所述瀏覽器的進程對應(yīng)的線程隊列中。
需要說明的是,所述插入單元13,還包括:信息獲取子單元134,用于根據(jù)所述瀏覽器線程環(huán)境塊,獲取所述瀏覽器的進程對應(yīng)的線程隊列的狀態(tài)信息;設(shè)置子單元135,用于將所述瀏覽器的進程對應(yīng)的線程隊列的狀態(tài)信息設(shè)置為警報狀態(tài)。
還需要說明的是,所述空間申請子單元131,具體還用于根據(jù)所述瀏覽器進程環(huán)境塊,將系統(tǒng)內(nèi)核中央處理器的執(zhí)行指針附加到所述瀏覽器的進程;在所述瀏覽器的進程的存儲空間內(nèi),為所述異步過程調(diào)用回調(diào)函數(shù)申請存儲空間。
所述加載單元17,具體包括:函數(shù)獲取子單元171,用于根據(jù)所述異步過程調(diào)用回調(diào)函數(shù)申請的存儲空間,獲取所述異步過程調(diào)用回調(diào)函數(shù);查找子單元172,用于根據(jù)所述異步過程調(diào)用回調(diào)函數(shù),查找所述瀏覽器的進程待加載動態(tài)鏈接庫的基地址;調(diào)用子單元173,用于根據(jù)所述待加載動態(tài)鏈接庫的基地址,定位所述待加載動態(tài)鏈接庫的加載函數(shù);將所述待加載動態(tài)鏈接庫的文件路徑作為參數(shù),調(diào)用所述待加載動態(tài)鏈接庫的加載函數(shù);加載子單元174,用于將所述待加載動態(tài)鏈接庫的文件加載到所述瀏覽器的進程中。
本實施例的裝置,可以用于執(zhí)行圖1或圖2所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。
尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,″計算機可讀介質(zhì)″可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計算機可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器(ROM),可擦除可編輯只讀存儲器(EPROM或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(CDROM)。另外,計算機可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因為可以例如通過對紙或其他介質(zhì)進行光學(xué)掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。
在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
本發(fā)明實施例還提供一種終端設(shè)備,所述終端設(shè)備包含前述任一實施例所述的裝置。
圖5為本發(fā)明終端設(shè)備一個實施例的結(jié)構(gòu)示意圖,可以實現(xiàn)本發(fā)明圖1-3所示實施例的流程,如圖5所示,上述終端設(shè)備可以包括:殼體41、處理器42、存儲器43、電路板44和電源電路45,其中,電路板44安置在殼體41圍成的空間內(nèi)部,處理器42和存儲器43設(shè)置在電路板44上;電源電路45,用于為上述終端設(shè)備的各個電路或器件供電;存儲器43用于存儲可執(zhí)行程序代碼;處理器42通過讀取存儲器43中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一實施例所述的動態(tài)鏈接庫文件的注入方法。
處理器42對上述步驟的具體執(zhí)行過程以及處理器42通過運行可執(zhí)行程序代碼來進一步執(zhí)行的步驟,可以參見本發(fā)明圖1-2所示實施例的描述,在此不再贅述。
該終端設(shè)備以多種形式存在,包括但不限于:
(1)移動通信設(shè)備:這類設(shè)備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。
(2)超移動個人計算機設(shè)備:這類設(shè)備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。
(3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。
(4)服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
(5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
為了描述的方便,描述以上裝置是以功能分為各種單元/模塊分別描述。當(dāng)然,在實施本發(fā)明時可以把各單元/模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準。