安装unicorn
直接通过pip安装Unicorn是无法安装的,会报错。具体来说安装方法如下:
首先在pypi下载unicorn最新版本的代码,https://pypi.org/project/unicorn/#files ,然后解压,进入目录,执行如下操作
brew install unicorn #brew安装unicorn取其一部分库
cp /opt/homebrew/opt/unicorn/lib/lib* ./prebuilt # 对于intel芯片则是/usr/local/opt/unicorn/lib/lib*
这时库已经可以被本地安装了,但是我这里无法解析版本号,解析到的版本号是0.0.0,手动修改setup.cfg,在metadata下添加version(如果没有metasata就添加一个metadata),如下(修改为正确的版本号)
[metadata]
version = 2.1.3
然后执行python setup.py install即可安装成功
安装keystone
这里keystone可以直接通过pip install keystone-engine被安装,但是缺少一些动态库,使用的时候会报错ImportError: ERROR: fail to load the dynamic library.。需要手动编译keystone并安装。具体步骤如下
首先拉取代码
git clone https://github.com/keystone-engine/keystone.git
因为keystone的年代实在是太久远了,所以需要手动修改项目中的一些编译配置,主要修改的有三个文件,代码根目录下的CMakeLists.txt,llvm/CMakeLists.txt、kstool/CMakeLists.txt这三个。将所有的cmake_minimum_required(VERSION 2.8.7)改为cmake_minimum_required(VERSION 3.10),然后将所有的cmake_policy(SET CMP0051 OLD)改为cmake_policy(SET CMP0051 NEW)
然后需要一些编译选项,这里通过一些临时环境变量来做
export CXXFLAGS="-stdlib=libc++"
export LDFLAGS="-stdlib=libc++ -lc++abi -lc++"
export CMAKE_CXX_FLAGS="-stdlib=libc++"
export CMAKE_EXE_LINKER_FLAGS="-stdlib=libc++ -lc++abi -lc++"
export CMAKE_SHARED_LINKER_FLAGS="-stdlib=libc++ -lc++abi -lc++"
export CMAKE_MODULE_LINKER_FLAGS="-stdlib=libc++ -lc++abi -lc++"
这时就可以编译安装了,如下
mkdir build
cd build
../make-share.sh
sudo make install
这时keystone就能正常使用了。
如果依旧不行,用如下命令看一下具体原因,可能是缺了什么依赖库
python -c "
import ctypes
try:
lib = ctypes.CDLL('/usr/local/lib/libkeystone.dylib')
print('Library loaded successfully')
except Exception as e:
print(f'Failed to load library: {e}')
"
如果缺少libc++abi.1.dylib,从llvm里面复制即可,复制到conda的目录下,或者软连接过去,一般来说需要libc++abi.dylib和libunwind.dylib。
安装IDA Feeds
这不算是坑,顺便一起记录一下,针对9.1。
首先安装idalib,在ida目录下的idalib/python
python -m pip install ./Contents/MacOS/idalib/python/.
安装ida feeds的依赖
python -m pip install -r ./Contents/MacOS/plugins/ida_feeds/requirements.txt
配置ida_feeds/config.json中的flair路径,需要把config.sample.json改名为config.json。
flair在默认情况下在ida目录的/Contents/MacOS/tools中,我这里是ida pro 9.1,就是/Applications/IDA Professional 9.1.app/Contents/MacOS/tools/flair(文件夹的路径),写在config.json中即可(感觉像是半成品,都在目录下为什么没有默认路径)
下载泄露中一起的signatures-bundles-9.1.zip,这时额外提供的一些签名文件,将其复制到ida目录下的./Contents/Macos/sig目录下即可。
可以看到插件已经可以使用了



