[發(fā)明專利]基于可執(zhí)行文件的函數(shù)判定方法及裝置有效
| 申請?zhí)枺?/td> | 201610920945.4 | 申請日: | 2016-10-20 |
| 公開(公告)號: | CN107967203B | 公開(公告)日: | 2020-07-28 |
| 發(fā)明(設(shè)計)人: | 黨萬春;周海;畢研濤;魏學(xué)峰 | 申請(專利權(quán))人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F11/34 | 分類號: | G06F11/34 |
| 代理公司: | 北京三高永信知識產(chǎn)權(quán)代理有限責(zé)任公司 11138 | 代理人: | 朱雅男 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 可執(zhí)行文件 函數(shù) 判定 方法 裝置 | ||
1.一種基于可執(zhí)行文件的函數(shù)判定方法,其特征在于,所述方法包括:
獲取應(yīng)用程序的可執(zhí)行文件,所述可執(zhí)行文件中包括函數(shù);
根據(jù)所述可執(zhí)行文件生成所述應(yīng)用程序的匯編文件;
根據(jù)所述匯編文件中與所述函數(shù)相關(guān)的匯編指令片段檢測所述函數(shù)是否滿足預(yù)設(shè)條件;所述預(yù)設(shè)條件是對所述函數(shù)進行鉤子Hook時,所述應(yīng)用程序出錯的預(yù)警條件;
若所述函數(shù)滿足所述預(yù)設(shè)條件,則判定所述函數(shù)不支持Hook行為,所述預(yù)設(shè)條件包括:所述函數(shù)的回調(diào)函數(shù)的返回地址屬于所述應(yīng)用程序的地址空間,且所述返回地址對應(yīng)的匯編指令的起始字段中包括跳轉(zhuǎn)指令、所述匯編文件中包括以所述函數(shù)為回調(diào)函數(shù)的調(diào)用函數(shù)的所述匯編指令以及所述函數(shù)的所述匯編指令的起始字段中包括跳轉(zhuǎn)指令中的至少一種。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,
所述匯編指令片段包括所述函數(shù)的回調(diào)函數(shù)的匯編指令、以所述函數(shù)為回調(diào)函數(shù)的調(diào)用函數(shù)的匯編指令,以及所述函數(shù)的匯編指令中的至少一種。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述匯編指令片段包括所述函數(shù)的所述回調(diào)函數(shù)的所述匯編指令;
所述根據(jù)所述匯編文件中與所述函數(shù)相關(guān)的匯編指令片段檢測所述函數(shù)是否滿足預(yù)設(shè)條件,還包括:
根據(jù)所述回調(diào)函數(shù)的所述匯編指令確定所述回調(diào)函數(shù)的返回地址;
檢測所述返回地址是否屬于所述應(yīng)用程序的所述地址空間;
若所述返回地址不屬于所述地址空間,則確定所述函數(shù)滿足所述預(yù)設(shè)條件。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述匯編指令片段還包括所述回調(diào)函數(shù)的所述返回地址所對應(yīng)的匯編指令;所述方法還包括:
若所述返回地址屬于所述地址空間,則檢測所述返回地址對應(yīng)的所述匯編指令的起始字段中是否包括跳轉(zhuǎn)指令;
若檢測結(jié)果為包括所述跳轉(zhuǎn)指令,則確定所述函數(shù)滿足所述預(yù)設(shè)條件。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述匯編指令片段包括以所述函數(shù)為回調(diào)函數(shù)的所述調(diào)用函數(shù)的所述匯編指令;
所述根據(jù)所述匯編文件中與所述函數(shù)相關(guān)的匯編指令片段檢測所述函數(shù)是否滿足預(yù)設(shè)條件,包括:
檢測所述匯編文件中是否包括所述調(diào)用函數(shù)的所述匯編指令;
若檢測結(jié)果為包括所述調(diào)用函數(shù)的所述匯編指令,則確定所述函數(shù)滿足所述預(yù)設(shè)條件。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述匯編指令片段包括所述函數(shù)的匯編指令;
所述根據(jù)所述匯編文件中與所述函數(shù)相關(guān)的匯編指令片段檢測所述函數(shù)是否滿足預(yù)設(shè)條件,包括:
檢測所述函數(shù)的所述匯編指令的起始字段中是否包括跳轉(zhuǎn)指令;
若所述匯編指令的起始字段中包括所述跳轉(zhuǎn)指令,則確定所述函數(shù)滿足所述預(yù)設(shè)條件。
7.根據(jù)權(quán)利要求1至6任一所述的方法,其特征在于,所述方法還包括:
確定所述函數(shù)的函數(shù)大小,所述函數(shù)大小是所述函數(shù)占用的字節(jié)大小;
檢測所述函數(shù)大小是否大于預(yù)定大小;
若所述函數(shù)大小小于所述預(yù)定大小,則判定所述函數(shù)不支持Hook行為。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述確定所述函數(shù)的函數(shù)大小,包括:
獲取所述應(yīng)用程序的程序數(shù)據(jù)庫PDB文件;
根據(jù)所述PDB文件確定所述函數(shù)的所述函數(shù)大小。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于騰訊科技(深圳)有限公司,未經(jīng)騰訊科技(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610920945.4/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





