首页
社区
课程
招聘
如何快速找到c++虚函数名
发表于: 2015-1-22 16:00 6173

如何快速找到c++虚函数名

2015-1-22 16:00
6173
目前手头上逆向一个c++游戏,其中用到了一个开源库代码,有不少虚函数,反汇编的代码中调用虚函数的形式是对象加偏移地址,一般是根据这个偏移地址去vtable中查询,然后就可以知道它是调用哪个函数
但是我感觉这个过程太慢了,本身IDA搜索也慢,先要找到vtable头,然后根据偏移量进行计算,再定位到对应的地址,慢死了。我想知道有没有什么方法加速这个过程

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
rtti
2015-1-22 16:08
0
雪    币: 200
活跃值: (38)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
建议两个:

1.用ida ClassInformer插件找类名称(如果有rtti信息的话)
2.直接找到对应开源库,用flair做签名,然后让ida自动识别函数
2015-1-22 17:24
0
雪    币: 160
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢提供思路,只是还需要花点时间研究研究了
2015-1-22 21:27
0
雪    币: 160
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
ClassInformer是针对VC的,我用不了,flair也没搞定。最后是用一个插件解决的,把vtable变成Structure,然后把偏移值替换为Structure中的名字
2015-1-30 18:53
0
雪    币: 7333
活跃值: (4034)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
问一下,如果不是开源的代码,那么可以通过虚函数表查找虚函数的地址,但是怎么找函数的名字,就像导出表一样,类的虚函数有没有将名字存放在某个地方。
2015-2-1 09:20
0
雪    币: 160
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
函数名字能不能显示跟开源代码没有关系的,如果编译时做了特别的strip设置,一些函数名字会被去掉的,这样你就看不到函数名字,虚函数也是一样
2015-2-5 15:40
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
多问问大神,应该就可以了
2015-2-5 23:24
0
雪    币: 393
活跃值: (150)
能力值: (RANK:110 )
在线值:
发帖
回帖
粉丝
9
在vc6下如何进行strip设置,去掉函数符号
2015-3-26 21:42
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
在vc6下如何进行strip设置,去掉函数符号
2015-3-26 22:37
0
游客
登录 | 注册 方可回帖
返回
//