[發(fā)明專(zhuān)利]未導(dǎo)出的Native API函數(shù)獲取方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201310455256.7 | 申請(qǐng)日: | 2013-09-29 |
| 公開(kāi)(公告)號(hào): | CN103632099A | 公開(kāi)(公告)日: | 2014-03-12 |
| 發(fā)明(設(shè)計(jì))人: | 馮世杰 | 申請(qǐng)(專(zhuān)利權(quán))人: | 廣州華多網(wǎng)絡(luò)科技有限公司 |
| 主分類(lèi)號(hào): | G06F21/57 | 分類(lèi)號(hào): | G06F21/57 |
| 代理公司: | 北京三高永信知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司 11138 | 代理人: | 張耀光 |
| 地址: | 510655 廣東省廣州市黃*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 導(dǎo)出 native api 函數(shù) 獲取 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種未導(dǎo)出的Native?API函數(shù)獲取方法及裝置。
背景技術(shù)
隨著WINDOWS?API(WINDOWS?Application?Programming?Interface,WINDOWS應(yīng)用程序編程接口)編程的廣泛普及和應(yīng)用,越來(lái)越多的應(yīng)用程序可以通過(guò)調(diào)用WINDOWS?API函數(shù)來(lái)完成相應(yīng)的功能。
目前,應(yīng)用程序在實(shí)現(xiàn)具體功能時(shí),首先需要加載與功能相關(guān)的DLL(Dynamic?Link?Library,動(dòng)態(tài)鏈接庫(kù)),然后根據(jù)GetProcAddress函數(shù)獲取DLL中WINDOWS?API函數(shù)的起始地址,根據(jù)這些起始地址調(diào)用對(duì)應(yīng)的WINDOWS?API函數(shù),這些WINDOWS?API函數(shù)通常會(huì)最終調(diào)用較低級(jí)的Native?API函數(shù),這些Native?API函數(shù)最終完成對(duì)驅(qū)動(dòng)層的訪問(wèn)。而惡意程序(比如利用鉤子Hook技術(shù)的程序)可以預(yù)先Hook到GetProcAddress函數(shù),以得到相關(guān)的API函數(shù)(通??梢园╓INDOWS?API函數(shù)或者Native?API函數(shù))的起始地址,并獲取API函數(shù)的內(nèi)容或?qū)PI函數(shù)的內(nèi)容進(jìn)行修改。
由于惡意程序無(wú)法Hook到未導(dǎo)出的Native?API函數(shù)的起始地址,因此可以獲取這些未導(dǎo)出的Native?API函數(shù),然后直接調(diào)用這些未導(dǎo)出的Native?API函數(shù)以完成相應(yīng)的功能。目前,存在一種獲取未導(dǎo)出的Native?API函數(shù)的方法,可以包括:首先手工提取指定版本系統(tǒng)文件中某一部分代碼作為特征碼,該部分代碼需要通過(guò)人工分析出可能是和所要查找的未導(dǎo)出的Native?API函數(shù)是相關(guān)的;然后根據(jù)該特征碼在內(nèi)存的相應(yīng)模塊做暴力搜索,即在內(nèi)存的相應(yīng)模塊查找是否存在該特征碼,如果查找到該特征碼,分析這段特征碼以獲取未導(dǎo)出Native?API函數(shù)。
在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:每次根據(jù)特征碼在內(nèi)存的相應(yīng)模塊做暴力搜索時(shí),必須先人工分析系統(tǒng)版本中一個(gè)文件以提取一個(gè)特征碼,而系統(tǒng)版本非常多,對(duì)所有的系統(tǒng)版本均進(jìn)行人工分析出所有的特征碼,效率很低,且人工分析出的特征碼不一定能夠找到想要的未導(dǎo)出Native?API函數(shù),因此通過(guò)人工分析出的特征碼搜索到想要的未導(dǎo)出NativeAPI函數(shù)的命中率非常低。且由于特征碼是人工分析并提取的一段較長(zhǎng)的代碼,因此在利用特征碼進(jìn)行暴力搜索時(shí),搜索效率非常低。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中利用特征碼進(jìn)行暴力搜索時(shí),搜索效率和搜索命中率非常低的問(wèn)題,本發(fā)明實(shí)施例提供了一種未導(dǎo)出的Native?API函數(shù)獲取方法及裝置。所述技術(shù)方案如下:
第一方面,提供了一種未導(dǎo)出的Native?API函數(shù)獲取方法,所述方法,包括:
獲取目標(biāo)Native?API函數(shù)所在的模塊代碼段的范圍,所述目標(biāo)Native?API函數(shù)為指定的未導(dǎo)出的Native?API函數(shù);
獲取在調(diào)用指定函數(shù)時(shí)生成的當(dāng)前棧,所述指定函數(shù)為在被調(diào)用時(shí)調(diào)用所述目標(biāo)Native?API函數(shù)的Windows?API函數(shù);
根據(jù)所述當(dāng)前棧,獲取地址位于所述模塊代碼段的范圍內(nèi)的指針數(shù)據(jù);
根據(jù)所述指針數(shù)據(jù)的地址,檢測(cè)所述模塊代碼段中是否存在用于調(diào)用所述目標(biāo)Native?API函數(shù)的語(yǔ)句;
若檢測(cè)結(jié)果為存在用于調(diào)用所述目標(biāo)Native?API函數(shù)的語(yǔ)句,則根據(jù)所述用于調(diào)用所述目標(biāo)Native?API函數(shù)的語(yǔ)句獲取所述目標(biāo)Native?API函數(shù)。
在第一方面的第一種可能的實(shí)施方式中,所述獲取在調(diào)用指定函數(shù)時(shí)生成的當(dāng)前棧,包括:
執(zhí)行調(diào)用所述指定函數(shù)的功能;
獲取在執(zhí)行調(diào)用所述指定函數(shù)的功能時(shí)生成的當(dāng)前棧。
結(jié)合第一方面或者第一方面的第一種可能的實(shí)施方式,在第二種可能的實(shí)施方式中,所述根據(jù)所述當(dāng)前棧獲取地址位于所述模塊代碼段的范圍內(nèi)的指針數(shù)據(jù),包括:
利用匯編語(yǔ)言將所述當(dāng)前棧的地址由第一地址修改為第二地址;
利用匯編語(yǔ)言將具有所述第二地址的所述當(dāng)前棧中的內(nèi)容復(fù)制到預(yù)先在內(nèi)存中分配的棧內(nèi)存中;
遍歷所述棧內(nèi)存,獲取地址在所述模塊代碼段的范圍內(nèi)的指針數(shù)據(jù)。
結(jié)合第一方面、第一方面的第一種可能的實(shí)施方式或者第一方面的第二種可能的實(shí)施方式,在第三種可能的實(shí)施方式中,在所述利用匯編語(yǔ)言將具有所述第二地址的所述當(dāng)前棧中的內(nèi)容復(fù)制到預(yù)先在內(nèi)存中分配的棧內(nèi)存中之后,還包括:
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于廣州華多網(wǎng)絡(luò)科技有限公司,未經(jīng)廣州華多網(wǎng)絡(luò)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310455256.7/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過(guò)保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過(guò)保護(hù)特定的外圍設(shè)備,如鍵盤(pán)或顯示器
G06F21-06 .通過(guò)感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過(guò)限制訪問(wèn)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過(guò)限制訪問(wèn)或處理程序或過(guò)程
- 一種NativeAPI函數(shù)重構(gòu)方法和裝置
- Android系統(tǒng)中native層調(diào)用Java層API的方法和裝置
- 一種實(shí)現(xiàn)Hybrid App的HTML與Native交互的方法
- 一種圖片字幕顯示方法和裝置
- Android系統(tǒng)中Native層異常上報(bào)處理方法及裝置
- 一種在React Native組件之間傳遞native對(duì)象的方法和裝置
- Native代碼調(diào)用系統(tǒng)、方法及APP混合開(kāi)發(fā)系統(tǒng)
- 移動(dòng)應(yīng)用中HTML與Native交互的公共數(shù)據(jù)通道的實(shí)現(xiàn)方法
- Web頁(yè)面組件與Native組件的交互方法、裝置及設(shè)備
- 應(yīng)用的React Native業(yè)務(wù)執(zhí)行方法、裝置、存儲(chǔ)介質(zhì)及終端設(shè)備
- 一種應(yīng)用程序編程接口調(diào)用方法及設(shè)備
- 一種輕量級(jí)API Server開(kāi)發(fā)框架及開(kāi)發(fā)方法
- 一種云平臺(tái)的訪問(wèn)限制的方法及裝置
- API服務(wù)的訪問(wèn)方法、裝置及電子設(shè)備
- 一種用于服務(wù)器端上API接口的過(guò)載保護(hù)裝置
- 一種API編排方法及裝置
- 下一代網(wǎng)絡(luò)中的通用API框架所用的安全過(guò)程
- API接口生成方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種API文檔查找方法
- API權(quán)限控制方法及裝置





