[发明专利]一种对动态链接库中虚表函数列表的提取方法在审
申请号: | 201911014844.0 | 申请日: | 2019-10-24 |
公开(公告)号: | CN111124527A | 公开(公告)日: | 2020-05-08 |
发明(设计)人: | 童永鳌;李政博;张瑞冬 | 申请(专利权)人: | 成都无糖信息技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F8/41 |
代理公司: | 成都为知盾专利代理事务所(特殊普通合伙) 51267 | 代理人: | 李汉强 |
地址: | 610000 四川省成都市武侯*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 链接 库中虚表 函数 列表 提取 方法 | ||
本发明公开了一种对动态链接库中虚表函数列表的提取方法,其具体操作如下:对RTTI结构中的目标函数进行定位并提取RTTI所提供的类型信息;对所获取的RTTI结构类型信息进行解析,在还原结构体后,就能够以结构化的方式访问任何需要的字段和信息,其中便包含了虚表及其类型名,最后进行格式化输出即可。本发明通过从虚表的实现机制入手,对程序的数据进行搜索,从而提出了可以批量导出程序虚表函数的方法。基于此方法,测试人员可以快速获得程序内的虚表函数进行下一步工作,从而大大节省工作时间,提升工作效率。
技术领域
本发明涉及计算机技术领域,具体涉及一种对动态链接库中虚表函数列表的提取方法。
背景技术
动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL文件中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容。
使用动态链接库可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,一个大型网络游戏,如果把整个数百MB甚至数GB的游戏的代码都放在一个应用程序里,日后的修改工作将会十分费时,而如果把不同功能的代码分别放在数个动态链接库中,无需重新生成或安装整个程序就可以应用更新。
动态链接库文件,是一种不可执行的二进制程序文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。一般被存放在电脑的C:\Windows\System32目录下。
Windows中,DLL多数情况下是带有.dll扩展名的文件,但也可能是.ocx或其他扩展名;Linux系统中常常是.so的文件。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。
目前,基于C++开发的动态链接库,可执行程序等,由于C++机制原因,没有工具可以批量化导出程序内的虚表函数列表,无法对已经编译好的程序进行直接分析。
发明内容
为克服上述存在之不足,本发明的发明人通过长期的探索尝试以及多次的实验和努力,不断改革与创新,提出了一种对动态链接库中虚表函数列表的提取方法,该方法可以批量导出程序虚表函数。
为实现上述目的本发明所采用的技术方案是:一种对动态链接库中虚表函数列表的提取方法,该方法是基于C++开发的动态链接库,其具体操作如下:
对RTTI结构中的目标函数进行定位并提取RTTI所提供的类型信息;
对所获取的RTTI结构类型信息进行解析,具体是对RTTI结构进行类型解析、对RTTI结构的基类进行解析和对RTTI结构进行类层次解析,使其以结构体的方式出现在IDA中,使用IDA提供的接口进行静态分析;
在还原结构体后,就能够以结构化的方式访问任何需要的字段和信息,其中便包含了虚表及其类型名,最后进行格式化输出即可。
根据本发明中所述的一种对动态链接库中虚表函数列表的提取方法,其进一步地优选技术方案是,对RTTI结构中的目标函数进行定位具体是通过基类的指针或引用来获取所指对象的实际类型信息,RTTI提供的类型信息通过typeid或dynamic_cast来获取和操作,在每个类的虚表前都放置了一个结构体指针,利用此结构体指针,找到RTTI机制提供的所有信息。
根据本发明中所述的一种对动态链接库中虚表函数列表的提取方法,其进一步地优选技术方案是,所述在每个类的虚表前放置一个结构体指针是采用的msvc编译器实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都无糖信息技术有限公司,未经成都无糖信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911014844.0/2.html,转载请声明来源钻瓜专利网。