[发明专利]基于可执行文件的函数判定方法及装置有效
申请号: | 201610920945.4 | 申请日: | 2016-10-20 |
公开(公告)号: | CN107967203B | 公开(公告)日: | 2020-07-28 |
发明(设计)人: | 党万春;周海;毕研涛;魏学峰 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 朱雅男 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 可执行文件 函数 判定 方法 装置 | ||
1.一种基于可执行文件的函数判定方法,其特征在于,所述方法包括:
获取应用程序的可执行文件,所述可执行文件中包括函数;
根据所述可执行文件生成所述应用程序的汇编文件;
根据所述汇编文件中与所述函数相关的汇编指令片段检测所述函数是否满足预设条件;所述预设条件是对所述函数进行钩子Hook时,所述应用程序出错的预警条件;
若所述函数满足所述预设条件,则判定所述函数不支持Hook行为,所述预设条件包括:所述函数的回调函数的返回地址属于所述应用程序的地址空间,且所述返回地址对应的汇编指令的起始字段中包括跳转指令、所述汇编文件中包括以所述函数为回调函数的调用函数的所述汇编指令以及所述函数的所述汇编指令的起始字段中包括跳转指令中的至少一种。
2.根据权利要求1所述的方法,其特征在于,
所述汇编指令片段包括所述函数的回调函数的汇编指令、以所述函数为回调函数的调用函数的汇编指令,以及所述函数的汇编指令中的至少一种。
3.根据权利要求2所述的方法,其特征在于,所述汇编指令片段包括所述函数的所述回调函数的所述汇编指令;
所述根据所述汇编文件中与所述函数相关的汇编指令片段检测所述函数是否满足预设条件,还包括:
根据所述回调函数的所述汇编指令确定所述回调函数的返回地址;
检测所述返回地址是否属于所述应用程序的所述地址空间;
若所述返回地址不属于所述地址空间,则确定所述函数满足所述预设条件。
4.根据权利要求3所述的方法,其特征在于,所述汇编指令片段还包括所述回调函数的所述返回地址所对应的汇编指令;所述方法还包括:
若所述返回地址属于所述地址空间,则检测所述返回地址对应的所述汇编指令的起始字段中是否包括跳转指令;
若检测结果为包括所述跳转指令,则确定所述函数满足所述预设条件。
5.根据权利要求2所述的方法,其特征在于,所述汇编指令片段包括以所述函数为回调函数的所述调用函数的所述汇编指令;
所述根据所述汇编文件中与所述函数相关的汇编指令片段检测所述函数是否满足预设条件,包括:
检测所述汇编文件中是否包括所述调用函数的所述汇编指令;
若检测结果为包括所述调用函数的所述汇编指令,则确定所述函数满足所述预设条件。
6.根据权利要求2所述的方法,其特征在于,所述汇编指令片段包括所述函数的汇编指令;
所述根据所述汇编文件中与所述函数相关的汇编指令片段检测所述函数是否满足预设条件,包括:
检测所述函数的所述汇编指令的起始字段中是否包括跳转指令;
若所述汇编指令的起始字段中包括所述跳转指令,则确定所述函数满足所述预设条件。
7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
确定所述函数的函数大小,所述函数大小是所述函数占用的字节大小;
检测所述函数大小是否大于预定大小;
若所述函数大小小于所述预定大小,则判定所述函数不支持Hook行为。
8.根据权利要求7所述的方法,其特征在于,所述确定所述函数的函数大小,包括:
获取所述应用程序的程序数据库PDB文件;
根据所述PDB文件确定所述函数的所述函数大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610920945.4/1.html,转载请声明来源钻瓜专利网。