根据官方文档安装坑实在挺多,所以值得记录下来分享。
关于keystone-engine,无论是源码安装还是使用pip2 install keystone-engine总是错误连篇
这里借鉴一位大牛的安装方法,在下列操作之前,需要安装cmake,使用brew install cmake命令。
git clone https://github.com/fjh658/keystone-engine.git
cd keystone-engine
git submodule update --init --recursive
sudo python2 setup.py install --verbose
我的python2是使用brew安装的,所以python扩展包的默认安装路径为/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/keystone/,安装的过程中会提示安装的路径,请关注终端的输出信息。
使用IDA最下方的python功能(print sys.path)打印系统环境变量中是否包含该路径,即是否在python可检索到的目录,如果包含次路径,不必进行下一步的拷贝,如果不在,将其拷贝在sys.path所显示的某一目录下,我的操作如下:
cp -r /usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/keystone /Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/python/lib/python2.7/lib-dynload/
下载最新版本的keypatch(支持IDA pro 7.0),地址为:https://raw.githubusercontent.com/keystone-engine/keypatch/master/keypatch.py
将其拷贝到 /Applications/IDA\ Pro\ 7.0/ida64.app/Contents/MacOS/plugins/这个目录,对应32位的拷贝到对应目录下。
重新运行IDA,当反汇编ARM程序,点击ctrl+alt+k调出此功能,或者通过edit菜单的keypatch或者plugins找到。此功能非常实用,可以配合IDA完成相应patch的工作,不必再去转换hex。
关于打开中文输入法,运行IDA会FC的问题,大牛的解决方案请参考链接:https://www.cnblogs.com/cthon/p/10183892.html
相应补丁下载地址为:替换/Applications/IDA Pro 7.0/ida.app/Contents/PlugIns/platforms/目录下的文件即可。
https://github.com/fjh658/IDA7.0_SP/releases/download/0.3/libqcocoa.dylib
https://github.com/fjh658/IDA7.1_SP/releases/download/0.2/libqcocoa.dylib
无法显示中文请参考:https://blog.csdn.net/code_godfather/article/details/78133545
Windows安装比较简单,下载相应版本的keystone-engine安装包, 再将keypatch.py拷贝至IDA安装目录下的plugins目录下,重新运行IDA即可。
https://github.com/keystone-engine/keystone/releases/download/0.9.1/keystone-0.9.1-python-win32.msi
https://github.com/keystone-engine/keystone/releases/download/0.9.1/keystone-0.9.1-python-win64.msi