Pe-afl:一款支持对Windows二进制程序的afl fuzz工具

2019 年 4 月 6 日 FreeBuf

pe-afl是一款基于了PE二进制和WinAFL上的静态二进制检测的工具,可以用于fuzzWindows应用程序和内核模式驱动程序,而无需源代码或完整符号或硬件支持。

我用这个工具发现了office,gdiplus,jet,lnk,clfs,cng上的bug。

PE上的仪表部分可以被多种用途重用:

1. 如果你觉得测试速度很慢,你可以在ubuntu上运行这个脚本;

2. 该工具基于microsoft二进制文件和visual studio编译的二进制文件,因此在非microsoft编译器上可能会出现故障。

操作方法

在calc.exe入口点测量2 NOP的例子:

ida.exe demo\calc.exe# 如果pdb可用,则使用pdb加载更可靠File->script file->ida_dump.pypython instrument.py -i"{0x1012d6c:'9090'}" demo\calc.exe demo\calc.exe.dump.txt# 0x1012d6c is entry point address, you can instrument from command-line or from __main__ in instrument.py

如何fuzz

您必须根据目标实现包装器,并添加你想要的东西,例如page heap等。

JetDB用于fuzz测试

ida.exe demo\msjet40.dllFile->script file->ida_dump.pypython pe-afl.py -m demo\msjet40.dll demo\msjet40.dll.dump.txt# msjet40是多线程的,所以使用-m参数

在win7上测试JetDB

copy /Y msjet40.instrumented.dll C:\Windows\System32\msjet40.dllbin\afl-showmap.exe -o NUL -p msjet40.dll -- bin\test_mdb.exe demo\mdb\normal.mdb# 确保能够捕获bin\AFL.exe -i demo\mdb -o out -t 5000 -m none -p msjet40.dll -- bin\test_mdb.exe @@

模糊测试CLFS

ida.exe demo\clfs.sysFile->script file->ida_dump.pypython pe-afl.py demo\clfs.sys demo\clfs.sys.dump.txt

在win10上的模糊测试CLFS

install_helper.batdisable_dse.batcopy /Y clfs.instrumented.sys C:\Windows\System32\drivers\clfs.sys# reboot if necessary    bin\afl-showmap.exe -o NUL -p clfs.sys -- bin\test_clfs.exe demo\blf\normal.blf# make sure that capture is OK    bin\AFL.exe -i demo\blf -o out -t 5000 -m none -p clfs.sys -- bin\test_clfs.exe @@

如何追踪

示例记录驱动程序执行并导入lighthouse

ida.exe demo\clfs.sysFile->script file->ida_dump.pypython pe-afl.py -cb demo\clfs.sys demo\clfs.sys.dump.txtcopy /Y clfs.instrumented.sys C:\Windows\System32\drivers\clfs.sys# reboot if necessarybin\afl-showmap.exe -o NUL -p clfs.sys -d -- bin\test_clfs.exe demo\blf\normal.blf# output is trace.txtpython lighthouse_trace.py demo\clfs.sys demo\clfs.sys.mapping.txt trace.txt > trace2.txt# install lighthousexcopy /y /e lighthouse [IDA folder]\plugins\ida.exe demo\clfs.sysFile->Load File->Code coverage file->trace2.txt

*参考来源:github,FB小编周大涛编译,转载请注明来自FreeBuf.COM

登录查看更多
1

相关内容

【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
吐血整理!140种Python标准库、第三方库和外部工具都有了
炼数成金订阅号
14+阅读 · 2019年7月30日
一个牛逼的 Python 调试工具
机器学习算法与Python学习
15+阅读 · 2019年4月30日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
已删除
创业邦杂志
5+阅读 · 2019年3月27日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
用python和Tesseract实现光学字符识别(OCR)
Python程序员
7+阅读 · 2017年7月18日
Arxiv
35+阅读 · 2019年11月7日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
Arxiv
8+阅读 · 2018年6月19日
Arxiv
3+阅读 · 2018年4月9日
Arxiv
3+阅读 · 2018年3月13日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
相关资讯
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
吐血整理!140种Python标准库、第三方库和外部工具都有了
炼数成金订阅号
14+阅读 · 2019年7月30日
一个牛逼的 Python 调试工具
机器学习算法与Python学习
15+阅读 · 2019年4月30日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
已删除
创业邦杂志
5+阅读 · 2019年3月27日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
用python和Tesseract实现光学字符识别(OCR)
Python程序员
7+阅读 · 2017年7月18日
Top
微信扫码咨询专知VIP会员