修改、编译IDA 6.8 插件 Class Informer 2.4
一
不小心在VC6的兼容配置里add Macro,再把这个Macro删除时,vs2015竟然把这个文件给清空了,导致vs2015把这个文件当XML解析时,出现没有root元素的错误
解决方法是从VC7的兼容配置上copy一份修改成VC6的配置
经过上一个错误,不想再用GUI来add Macro了,这次直接来MSBuild的配置文件来添加新的Macro $(IDADIR)
插件原作者是在QT5.4的环境上开发的,目前我的环境是IDA6.8+QT4.8,QT不同版本之间的函数有不一样的名字,模块放的位置也不同,如QT4.8的QtGui的一些类转移到了Qt5.x的QtWidgets模块
什么,core.cpp这个文件开头有一空行,竟然导致了 编码的问题,人眼看到是空白行,但不知道在别的编码下是什么不可见的字符。解决方法是把这行删除了
再来又是link不到QT5的lib,明明我都修改成link QT4的lib了,这个插件的作者还自己写了一些support lib,我找了一下,果然是这些support lib上的link的是QT5,解决方法是修改这些support lib的link 配置为QT4再重新编译
又来还是support lib的问题,打开linker的verbose开关可以看到链接的过程,原作者给WaitBox这个lib给编译和指明r的库名字不同,而在 Class Informer 工程和 WaitBox 工程中的编译配置上定义的宏不同导致 找不到dll
改完这些问题就成功编译出来了,这个插件对MFC的逆向中减轻了一些人工的虚函数表计算,对IDA能识别的符号的MFC类效果还是不错