安装
首先给下官方教程
官方教程
第一步
首先把依赖都给装好了,因为我之前有装vs2017,所以要弄的东西没多少,这里详细可以看官方教程
第二步
这里是下载源码,照着官方教程做就行
第三步
这里就有点小坑,主要是它说的不是很清楚
这里比较方便的直接就是下载它给的Binaries,然后扔到它说的那个目录下面就行
第四步
首先执行VS2017目录下面的vcvars64.bat,然后再执行
1 | mkdir remill_build |
这里默认当前目录下面有 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 |