how to compile WinAFL

0x00: 前言

以前给自己挖了好多坑,结果就是现在要一个一个填,比如winafl的改造,需要重新编译,按照github上给出的方案编译遇到了问题,之后填了这个坑,这段时间又接触了相关的东西,就把这些东西拿出来记录一下,方便以后自己查看。

0x01: 遇到的问题

之前的测试环境:

  • windows 10 x64
  • vs 2015

编译的方法:

For a 32-bit build:
1
2
3
4
mkdir build32
cd build32
cmake .. -DDynamoRIO_DIR=..\path\to\DynamoRIO\cmake
cmake --build . --config Release
For a 64-bit build:
1
2
3
4
mkdir build64
cd build64
cmake -G"Visual Studio 10 Win64" .. -DDynamoRIO_DIR=..\path\to\DynamoRIO\cmake
cmake --build . --config Release
不过要注意,DR的路径一定要是绝对路径。

然后遇到了这样的问题

一堆的链接错误….

出现这样的问题是因为你vs版本的问题,用2010就可以了。

0x02: 正确的姿势

首先上测试环境:

  • windows7 x64
  • vs2010

按照之前的方法编译,遇到了这样的一个问题。

这个是因为是VS用来进行COFF格式转换的工具cvtres.exe被破坏了。

1
2
cvtres.exe被破坏的原因是因为我刚装了.Net Framework,.Net Framework 自带了一个更新的cvtres.exe,却让原来VS2010中的cvtres.exe动不起来了。并且在VS编译时,VS自带的cvtres.exe在PATH环境变量的前面,所以COFF转换失败。
知道原因就很好解决了:把VS2010中的两个cvtres.exe删掉或改名字,让VS可以使用.Net Framework 4.5安装的cvtres.exe,就OK了。

再次编译

搞定了32位的编译,之后是64位的

0x03 : 结束语

现在已经可以编译了,也可以用vs调试了,这样就可以开始愉快的winafl改造工作了吧~