有时候程序对文件的格式要求比较高,比如png的头部,这时候目标程序会因为格式不对而不会对我们变异的输入进行处理,这时候可以使用post_library来解决这个问题
编写post_library
直接修改官方给的例子一般就足够了:
1 |
|
这里是把头部改成MAGIC_HEADER
编译
和编译afl-fuzz一样,在afl_post_library里创建一个build目录,cd进去
- cmake .. -A Win32 # 指定生成win32版本的
- cmake –build . # 编译dll
默认生成的是Debug目录,我们的dll也在Debug目录里:
1 | PS G:\winafl\afl_post_library\build_post\Debug> dir |
使用
在fuzz的时候,设置下环境变量就行:set AFL_POST_LIBRARY=G:\winafl\afl_post_library\build_post\Debug\post_library.dll
效果如下:
1 | $ xxd .cur_input |
可以看到输入的开头变成了我们的MAGIC_HEADER
参考链接
官方文档:https://github.com/googleprojectzero/winafl/blob/master/afl_post_library/post_library.c