为IDA 7.0安装keypatch 2.2
keypatch是基于keystone-engine这个汇编引擎的。所以,要在IDA里使用keypatch,需要先安装keystone-engine。
keystone-engine是基于python的,所以你只需要pip install keystone-engine
即可。需要注意的一点是,**需要先搞清楚IDA在用你电脑上的哪个python。**一般来说,IDA需要Python 2,我的电脑上安装了Python 2.7,所以IDA使用的是这个,而不是我常用的Python 3。一般来说,需要调用特定python的pip时,常使用python -m pip install keystone-engine
。
keystone-engine安装完毕后,就可以安装keypatch了。在keypatch的Github repo里下载keypatch.py,将这个文件放到IDA 7.0/plugins
目录下,整套工具就安装完毕了。
上述流程确实是官方文档所描述的。但是,新手这样操作常常不行,原因是有些东西搞错了,或者缺少依赖。IDA的错误信息会在最下面的Output window
里打印出来,如图:
我遇到的错误有:
LoadLibrary(…\keystone.dll) error: %1 不是有效的 Win32 应用程序。
这句话的意思是keystone.dll与你的IDA不是同一个架构的(i386 / amd64),**Win32并不是指keystone.dll不是x86的PE文件。**你需要检查你的IDA是32位还是64位的,可以在任务管理器的“详细信息”选项卡里“平台”一栏看到,或者凭借目录名判断(64位系统下,Program Files目录下一般为64位软件,而带(x86)
的则是32位软件。)
我还遇到了这样的问题:
keypatch.py: No module named six
这很明显是缺少包了。虽然我也不知道six
是个啥包,但是咱可以pip install six
试一试。我需要给我的Python 2.7装上这个包,所以需要:
需要注意的是,以上操作尽量在关闭IDA的情况执行。最后,我再次用IDA打开一个exe,按下Ctrl+Alt+K
,那个窗口终于弹出来了: