[发明专利]一种对动态链接库中虚表函数列表的提取方法在审
申请号: | 201911014844.0 | 申请日: | 2019-10-24 |
公开(公告)号: | CN111124527A | 公开(公告)日: | 2020-05-08 |
发明(设计)人: | 童永鳌;李政博;张瑞冬 | 申请(专利权)人: | 成都无糖信息技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F8/41 |
代理公司: | 成都为知盾专利代理事务所(特殊普通合伙) 51267 | 代理人: | 李汉强 |
地址: | 610000 四川省成都市武侯*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 链接 库中虚表 函数 列表 提取 方法 | ||
1.一种对动态链接库中虚表函数列表的提取方法,其特征在于,该方法是基于C++开发的动态链接库,其具体操作如下:
对RTTI结构中的目标函数进行定位并提取RTTI所提供的类型信息;
对所获取的RTTI结构类型信息进行解析,具体是对RTTI结构进行类型解析、对RTTI结构的基类进行解析和对RTTI结构进行类层次解析,使其以结构体的方式出现在IDA中,使用IDA提供的接口进行静态分析;
在还原结构体后,就能够以结构化的方式访问任何需要的字段和信息,其中便包含了虚表及其类型名,最后进行格式化输出即可。
2.根据权利要求1所述的一种对动态链接库中虚表函数列表的提取方法,其特征在于,对RTTI结构中的目标函数进行定位具体是通过基类的指针或引用来获取所指对象的实际类型信息,RTTI提供的类型信息通过typeid或dynamic_cast来获取和操作,在每个类的虚表前都放置了一个结构体指针,利用此结构体指针,找到RTTI机制提供的所有信息。
3.根据权利要求2所述的一种对动态链接库中虚表函数列表的提取方法,其特征在于,所述在每个类的虚表前放置一个结构体指针是采用的msvc编译器实现。
4.根据权利要求2所述的一种对动态链接库中虚表函数列表的提取方法,其特征在于,在利用结构体指针的具体操作是对.rdata段进行扫描,通过一定的特征来获取虚表位置,这个特征是虚表内容一定会被代码交叉引用且其表项存在于.text段中,扫描完成后,就获取了所有的COL结构地址,从而找到RTTI机制提供的所有信息。
5.根据权利要求1所述的一种对动态链接库中虚表函数列表的提取方法,其特征在于,在对所获取的RTTI结构类型信息进行解析时对每一个结构都定义一个注册类,并按照应有的定义为其添加成员字段,使其以结构体的方式出现在IDA中,以方便后续的静态分析。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都无糖信息技术有限公司,未经成都无糖信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911014844.0/1.html,转载请声明来源钻瓜专利网。