[发明专利]一种信息处理方法及服务器、计算机存储介质有效
申请号: | 201710331113.3 | 申请日: | 2017-05-11 |
公开(公告)号: | CN108874470B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 熊彪;尚鸿 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F9/54 |
代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 蒋雅洁;张颖玲 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 信息处理 方法 服务器 计算机 存储 介质 | ||
1.一种信息处理方法,其特征在于,所述方法包括:
以静态方式逆向遍历二进制文件中的函数代码,以将所述函数代码逆向成汇编语言的形式;
在静态解析模式下解析汇编语言形式的所述函数代码,得到所述函数代码中的所有指令,从所述函数代码中的所有指令中识别出函数地址调用指令;
根据所述函数地址调用指令所指示的位置,从所述函数代码中提取出第一函数调用关系链,所述第一函数调用关系链用于表征所述函数代码中全局的函数拓扑关系;
以动态解析方式获取所述函数代码运行时函数被调用的实际地址;
根据所述函数被调用的实际地址得到局部的函数拓扑关系;
根据所述局部的函数拓扑关系,对所述全局的函数拓扑关系中缺失的数据进行补齐,得到函数调用关系链。
2.根据权利要求1所述的方法,其特征在于,所述以动态解析方式获取所述函数代码运行时函数被调用的实际地址,包括:
从所述静态解析模式切换到动态解析模式,解析所述函数代码中包含的函数虚地址,得到与所述函数虚地址对应的函数被调用的实际地址。
3.根据权利要求2所述的方法,其特征在于,所述解析所述函数代码中包含的函数虚地址,得到与所述函数虚地址对应的函数被调用的实际地址,包括:
从所述函数代码中确定出需要动态获取函数调用关系链的待测试进程,所述待测试进程中包含函数虚地址;
在所述待测试进程运行前,对所述待测试进程下断点,运行到所述断点时,得到运行的特征数据,根据所述特征数据得到所述函数被调用的实际地址。
4.根据权利要求2所述的方法,其特征在于,所述解析所述函数代码中包含的函数虚地址,得到与所述函数虚地址对应的函数被调用的实际地址,包括:
从所述函数代码中确定出需要动态获取函数调用关系链的待测试进程,所述待测试进程中包含函数虚地址;
挂起所述待测试进程;
对所述待测试进程中所述函数地址调用指令的所在位置下断点;
运行所述待测试进程,若命中所述断点,则触发对所述函数被调用的实际地址的提取处理,提取出所述函数被调用的实际地址。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
根据所述函数被调用的实际地址得到第二函数调用关系链,所述第一函数调用关系链用于表征所述局部的函数拓扑关系;
所述根据所述局部的函数拓扑关系,对所述全局的函数拓扑关系中缺失的数据进行补齐,得到函数调用关系链,还包括:
根据所述第一函数调用关系链和所述第二函数调用关系链得到所述函数调用关系链。
6.一种服务器,其特征在于,所述服务器包括:
遍历单元,用于以静态方式逆向遍历二进制文件中的函数代码,以将所述函数代码逆向成汇编语言的形式;
第一解析单元,用于在静态解析模式下解析汇编语言形式的所述函数代码,得到所述函数代码中的所有指令,从所述函数代码中的所有指令中,识别出函数地址调用指令;
所述第一解析单元,还用于根据所述函数地址调用指令所指示的位置,从所述函数代码中提取出第一函数调用关系链,所述第一函数调用关系链用于表征所述函数代码中全局的函数拓扑关系;
第二解析单元,用于以动态解析方式获取所述函数代码运行时函数被调用的实际地址;
第一处理单元,用于根据所述函数被调用的实际地址得到局部的函数拓扑关系;
第二处理单元,用于根据所述局部的函数拓扑关系,对所述全局的函数拓扑关系中缺失的数据进行补齐,得到函数调用关系链。
7.根据权利要求6所述的服务器,其特征在于,所述第二解析单元,进一步用于:
从所述静态解析模式切换到动态解析模式,解析所述函数代码中包含的函数虚地址,得到与所述函数虚地址对应的函数被调用的实际地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710331113.3/1.html,转载请声明来源钻瓜专利网。