winafl 工具的编译

至于 winafl 是啥,上网找,有的是说法

 

这里只说明编译方法。

 

1:先去github,拿 winafl 代码

GITHUB 地址:https://github.com/googleprojectzero/winafl

git命令:git clone --recursive https://github.com/googleprojectzero/winafl

需要注意的是,一定要把相关的引用项目一起给下载下来

 

2:编译 winafl 的支持库 DynamoRIO。

具体编译方法,去看这里

https://www.cnblogs.com/suanguade/p/13388818.html

注意:这里其实不编译它也没问题,因为这个插桩库不是必须的,

但是如果要做fuzz,那么就必须,因为fuzz的关键模块 winafl.dll 是需要这个库的

 

3:打开cmake 配置项目

设置好目录之后,先configure

configure之后,在generate 之前,需要补一个环境变量,就是红框里面的。

路径里面必须要求带有如下文件:DynamoRIOConfig.cmake

之后就可以正常生成项目了。

 

4:可以用vs2017打开了,开始编译

 

 

一共就十来个项目,还算上测试项目,轻松编译完。

 

至此,就都编译完了。

最主要的工具有两个,

1:afl-fuzz.exe

2:winafl.dll

 

 

测试方法:

1:先使用IDA查询 test_gdiplus.exe 程序中main 函数的偏移

 

 

偏移是 0x1680

 

2:使用如下命令对 test_gdiplus.exe 做fuzz

afl-fuzz.exe -i in -o out -D D:\vs2017\dynamorio-master\dynamorio-master\Project\bin32 -t 20000 -- -coverage_module gdiplus.dll -coverage_module WindowsCodecs.dll -fuzz_iterations 5000 -target_module test_gdiplus.exe -target_offset 0x1680 -nargs 2 -- test_gdiplus.exe @@

  

3:程序开始运行了,挺难看的,说明编译没问题

 

 

 

 

至于怎么用,随便去找找较成吧

 

posted @ 2021-02-26 18:27  穷到底  阅读(519)  评论(0编辑  收藏  举报