由于某些难以启齿的原因, 我相信大家很多用的还是IDA 6.1.
这里是我补丁并编译的Pyside.
一并说一下编译注意事项.
1. 参考Daniel在hexblog上说的开发IDA Qt版本插件的说明, 需要先编译一份自定义的Qt. 据他说主要是因为IDA的脚本函数中有很多q打头的命令比如qstrcmp, qstrcpy等有跟qt的类混淆的危险, 为了以后发展就把所有Qt的类放入了命名空间.
以下是我编译时候用到的开关
configure -release -platform win32-msvc2008 -no-qt3support -qtnamespace QT -fast -opensource -confirm-license -nomake examples -nomake demos -nomake translations
即使关闭demo以后, 编译还是相当消耗时间, 建议用jom -j cpu数量来提高编译速度.
2. 官方提供的补丁不是diff, 是要覆盖用的, 当然, 没有提供原版的供你覆盖. 而pyside的官网早就没有各个阶段版的下载了. 从fedoraproject的源码包列表里面我找到了很多版本, 逐个比较日期接近03/28的包, 尝试Merge补丁进去.
最后确定对应的版本和编译顺序
1 API Extractor, 对应0.10.0 2/18版本, 该包的修改并不明显, 可以比较容易的merge到最新版.
2 generator runner, 对应 0.6.7 3/3号版本, 这个不可以随意换, 版本之间差得很大.
3 shiboken 使用1.0.1版本, 修改日期4/1, 虽然比补丁新, 但是是正确的版本.
4 pyside 使用1.0.1版本, 这个和shiboken要一一对应. 这个包编译耗时较多, 同样建议jom.
5 pyside-tools不需要编译.
编译要求环境是VC2008, 自定义编译的Qt, python, cmake 2.8.
我根据自己的系统路径, 写了把这些工具加入path的批处理.
如果cmake生成makefile过程中出现错误提示 仔细观察, 一般都是find_package没有找到需要的组件, 后面就会提到需要什么定义, 可以打开CMakefile.txt看看对应的命令, 在批处理设置环境变量让他用, 或者-D的方式指定. 不建议直接加到系统里面.
cmake可以用命令行, 也可以在设置好路径和变量的cmd窗口运行gui.
命令行时候, -G "NMake Makefiles JOM"加一个jom就是适配jom
另外需要注意的是, 很多开源的工具都有安装包, 然后这些安装程序都是为了把QtCore4.dll放到系统目录, 或者把自己加到环境变量, 这时候你编译过程会遇到QtCore4.dll无法找到某某符号的弹出框, 解决办法显然就是写信骂作者...
这里是IDA提供的导入表导出表查看脚本执行结果.
第一个包就是和6.2用的版本一样只包含pyd和一些脚本2个dll的package包, 安装方式就是释放到python目录, 会在site-package目录下多出一个pyside, 另一个包是编译后的各种头文件和库什么的, 可以用来扩充pyside本身, 实际使用中IDAPython不需要这些文件.
注意IDAScope用到了IDAPythonforIDA6.2里的一些定义, 要么问作者改, 要么... 我们就找点人来团一份6.3吧? 毕竟6.3多了源码调试功能如果做好了结构定义和vft, 调试时候在F5插件里面查看变量很有用啊.
而IDAToolbag现在版本只能用于6.2的. 作者说了, 想要6.1用, 注释掉ui.py里面timer有关的代码(在self.timer1和self.timer2两句创建语句前, 加个#井号), 当然collaboration功能会不可用.
参考
http://www.hexblog.com/?p=250
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!