[发明专利]一种信息处理方法及服务器、计算机存储介质有效
申请号: | 201710331113.3 | 申请日: | 2017-05-11 |
公开(公告)号: | CN108874470B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 熊彪;尚鸿 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F9/54 |
代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 蒋雅洁;张颖玲 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 信息处理 方法 服务器 计算机 存储 介质 | ||
本发明公开了一种信息处理方法、服务器及计算机存储介质,其中,所述方法包括:以静态方式逆向遍历二进制文件中的函数代码;解析所述函数代码,获取所述函数代码中全局的函数拓扑关系;以动态方式获取所述函数代码运行时函数被调用的实际地址;根据所述函数被调用的实际地址得到局部的函数拓扑关系;根据所述局部的函数拓扑关系,对所述全局的函数拓扑关系中缺失的数据进行补齐,得到函数调用关系链。
技术领域
本发明涉及通信技术,尤其涉及一种信息处理方法及服务器、计算机存储介质。
背景技术
用户使用的各种应用、各种互联网服务、各种生活服务等等,都可以通过计算机编程实现。在编程中有时会把多个函数串在一起依次调用,以达到特定的目的,在这里,把这样的调用方式形象地称为函数链调用。函数链中的函数有些是独立的,有些则只用在函数组合中,不会单独调用。对象的连续配置和组合是函数链调用比较常用场合,编程的编译过程中需要有相应的汇编类库供调用。
现有函数调用关系链的获取方式,是通过doxygen工具来实现。这种方式是静态解析源代码,通过解析代码的调用以生成函数调用关系链,即:通过解析源代码的方式获取该函数调用关系链。
采用上述函数调用关系链的获取方式,所存在的问题是:采用静态解析源代码的方式在对动态语言进行分析过程中,函数调用关系链会有缺失的现象,因为,需要在动态实际运行过程中才能够确定实际的函数地址。
然而,相关技术中,对于该问题,尚无有效解决方案。
发明内容
有鉴于此,本发明实施例提供了一种信息处理方法及服务器、计算机存储介质,至少解决了现有技术存在的问题。
本发明实施例提供一种信息处理方法,所述方法包括:
以静态方式逆向遍历二进制文件中的函数代码;
解析所述函数代码,获取所述函数代码中全局的函数拓扑关系;
以动态方式获取所述函数代码运行时函数被调用的实际地址;
根据所述函数被调用的实际地址得到局部的函数拓扑关系;
根据所述局部的函数拓扑关系,对所述全局的函数拓扑关系中缺失的数据进行补齐,得到函数调用关系链。
上述方案中,所述解析所述函数代码,获取所述函数代码中全局的函数拓扑关系,包括:
在静态解析模式下解析所述函数代码,得到所述函数代码中的所有指令;
从所述函数代码中的所有指令中,识别出函数地址调用指令;
根据所述函数地址调用指令所指示的位置,从所述函数代码中提取出第一函数调用关系链,所述第一函数调用关系链用于表征所述全局的函数拓扑关系。
上述方案中,所述以动态方式获取所述函数代码运行时函数被调用的实际地址,包括:
从所述静态解析模式切换到动态解析模式,解析所述函数代码中包含的函数虚地址,得到与所述函数虚地址对应的函数被调用的实际地址。
上述方案中,所述解析所述函数代码中包含的函数虚地址,得到与所述函数虚地址对应的函数被调用的实际地址,包括:
从所述函数代码中确定出需要动态获取函数调用关系链的待测试进程,所述待测试进程中包含函数虚地址;
在所述待测试进程运行前,对所述待测试进程下断点,运行到所述断点时,得到运行的特征数据,根据所述特征数据得到所述函数被调用的实际地址。
上述方案中,所述解析所述函数代码中包含的函数虚地址,得到与所述函数虚地址对应的函数被调用的实际地址,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710331113.3/2.html,转载请声明来源钻瓜专利网。