windows下mcsema安装及使用教程(踩坑记录)

安装

首先给下官方教程
官方教程

第一步

首先把依赖都给装好了,因为我之前有装vs2017,所以要弄的东西没多少,这里详细可以看官方教程

第二步

这里是下载源码,照着官方教程做就行

第三步

这里就有点小坑,主要是它说的不是很清楚

这里比较方便的直接就是下载它给的Binaries,然后扔到它说的那个目录下面就行

第四步

首先执行VS2017目录下面的vcvars64.bat,然后再执行

1
2
3
4
5
mkdir remill_build
cd remill_build

cmake -G "Visual Studio 15 2017" -T llvm -A x64 -DCMAKE_BUILD_TYPE=Release -DLIBRARY_REPOSITORY_ROOT=C:\Projects\tob_libraries -DCMAKE_INSTALL_PREFIX=C:\ ..\remill
cmake --build . --config Release -- /maxcpucount:4

这里默认当前目录下面有 remill,也就是第二步拉下来的源码

第五步

1
cmake --build . --config Release --target install

执行完这个,再配完它说的PATH和PYTHONPATH,还有一个东西它没说,也就是后面会坑到的地方

这里在 C:\mcsema\Lib\site-packages\protobuf-3.2.0-py3.5.egg\google这个目录下面,默认是没有init.py

后面import这个模块的时候就会报错,所以在这个目录下面创建一个init.py即可

使用

生成cfg

按照官方的教程的话,会先使用mcsema-disass来生成cfg,但是这里会有个迷之坑,执行之后死活说找不到文件,后面找了下,有一个issue 里面介绍了解决的办法

我这里再简单说一下吧,其实mcsema-disass只是简单的包装了下命令行参数,我们可以直接输入包装之后的命令

1
./ida64.exe -S"C:\mcsema\Lib\site-packages\mcsema_disass-2.0-py3.5.egg\mcsema_disass\ida7\get_cfg.py --output C:\Users\XXXX\Desktop\xz.cfg --log_file C:\Users\XXXX\Desktop\xz.log --arch amd64 --os linux --entrypoint main" C:\Users\XXXX\Desktop\ABC

上面就是一个样例,照着改就行,这里ida64.exe的路径根据自己的改就行

生成bitcode

这里按照官方指引就行,这里给出我的一个例子

1
mcsema-lift-5.0.exe --os linux --arch amd64 --cfg .\a.cfg --output a.bc