修改、编译IDA 6.8 插件 Class Informer 2.4

修改、编译IDA 6.8 插件 Class Informer 2.4


不小心在VC6的兼容配置里add Macro,再把这个Macro删除时,vs2015竟然把这个文件给清空了,导致vs2015把这个文件当XML解析时,出现没有root元素的错误



修改、编译IDA 6.8 插件 Class Informer 2.4修改、编译IDA 6.8 插件 Class Informer 2.4修改、编译IDA 6.8 插件 Class Informer 2.4修改、编译IDA 6.8 插件 Class Informer 2.4

解决方法是从VC7的兼容配置上copy一份修改成VC6的配置



修改、编译IDA 6.8 插件 Class Informer 2.4修改、编译IDA 6.8 插件 Class Informer 2.4

经过上一个错误,不想再用GUI来add Macro了,这次直接来MSBuild的配置文件来添加新的Macro $(IDADIR)


修改、编译IDA 6.8 插件 Class Informer 2.4

修改、编译IDA 6.8 插件 Class Informer 2.4

修改、编译IDA 6.8 插件 Class Informer 2.4

插件原作者是在QT5.4的环境上开发的,目前我的环境是IDA6.8+QT4.8,QT不同版本之间的函数有不一样的名字,模块放的位置也不同,如QT4.8的QtGui的一些类转移到了Qt5.x的QtWidgets模块


修改、编译IDA 6.8 插件 Class Informer 2.4 

什么,core.cpp这个文件开头有一空行,竟然导致了 编码的问题,人眼看到是空白行,但不知道在别的编码下是什么不可见的字符。解决方法是把这行删除了


修改、编译IDA 6.8 插件 Class Informer 2.4修改、编译IDA 6.8 插件 Class Informer 2.4

再来又是link不到QT5的lib,明明我都修改成link QT4的lib了,这个插件的作者还自己写了一些support lib,我找了一下,果然是这些support lib上的link的是QT5,解决方法是修改这些support lib的link 配置为QT4再重新编译


修改、编译IDA 6.8 插件 Class Informer 2.4修改、编译IDA 6.8 插件 Class Informer 2.4

又来还是support lib的问题,打开linker的verbose开关可以看到链接的过程,原作者给WaitBox这个lib给编译和指明r的库名字不同,而在 Class Informer 工程和 WaitBox 工程中的编译配置上定义的宏不同导致 找不到dll


修改、编译IDA 6.8 插件 Class Informer 2.4修改、编译IDA 6.8 插件 Class Informer 2.4

改完这些问题就成功编译出来了,这个插件对MFC的逆向中减轻了一些人工的虚函数表计算,对IDA能识别的符号的MFC类效果还是不错