专业联系方式:honggfuzz缝隙发掘技能原理剖析
Google开发的AFL(WinAFL)、libfuzzer和honggfuzz是最著名的三大根据代码覆盖率的fuzzer。网上关于AFL(WinAFL)的剖析文章较多,而关于后两者的剖析文章较少。之前泉哥现已写过关于honggfuzz的文章:honggfuzz缝隙发掘技能深究系列。本文是自己学习期间的一个笔记,读者也可当成对泉哥文章的一点弥补。主张读者先阅览泉哥的文章,本文不会再触及重复的内容。
比较其它的fuzzer,honggfuzz有以下特色:
1.含有多个fuzz实在程序(Apache/OpenSSL等等)的示例
2.支撑耐久型fuzzing(Persistent Fuzzing)方式,即长生命周期进程重复调用被fuzz的API
3.支撑Linux/FreeBSD/NetBSD/MacOS/Windows(CygWin)/Android等简直全部干流操作系统
4.支撑根据软件和根据硬件(分支计数(branch counting),指令计数(instruction counting),Intel *** S(Branch Trace Store),Intel PT(Processor Tracing))的反应驱动(Feedback-Driven)
[1]、https://www.microsoft.com/download/details.aspx?id=36982
5.运用底层接口监督进程(linux和NetBSD下运用ptrace),与其它fuzzer比较更| Set-Cookie: _gorilla_csrf=MTU2MzE5MDkwMHxJalZOT0c4MU0zbEJPVmhsVDI1MlRrSTVWM3BJTlhoQlRHdzNSa2hUZEcxc2FFMUtMMDVpVVVocWMxRTlJZ289fCCWbHBsW-9n90ew27ro5Jb1zXiF11Mr1BFa192sGwFS; HttpOnly; Secure有或许从crash中发现并陈述被劫持/疏忽的信号(被fuzz的程序或许截获并躲藏)
全体结构
我们首要仍是来看一下代码的全体目录。
android&mac&linux&netbsd&posix&arch.h:对不同操作系统的支撑,头文件统一在arch.h,接下来剖析的代码以linux为例。该目录下有这些文件:
arch.c:arch.h中函数的完结
bfd.c:根据bfd(Binary File Descriptor)完结解析符号/反汇编等功能
perf.c/pt.c:经过perf来运用PT,跟根据硬件的反应驱动有关
trace.c:子进程暂停/停止时剖析记载
unwind.c:根据libunwind完结栈回溯
docs:文档
examples:运用honggfuzz进行fuzz的一些比如
hfuzz_cc&libhfuzz:hfuzz_cc编译被fuzz程序的源代码,添加libhfuzz.a库。libhfuzz目录下有这些文件:
instrument.c:完结各种SanitizerCoverage需求的回调函数
linux.c:封装了libhfcommon/ns.c中的nsEnter/nsIfaceUp/nsMountTmpfs等函数
memorycmp.c:对libc/Apache/SSL/libXML/Samba等程序中触及比较的函数封装,添加instrumentUpdateCmpMap函数,两个参数分别是函数的回来地址和之一次呈现不持平字符的方位。之一次呈现不持平字符的方位越靠后两个值越挨近持平,越有或许走到新的途径
fetch.c/persistent.c:这儿面的代码主要是用于耐久型fuzzing方式的,有两种 *** 运用该方式:
一是把被fuzz的API放在LLVMFuzzerTestOneInput中,然后运用hfuzz_cc/hfuzz_clang test.c -o test指令编译,honggfuzz -P -- ./test工作fuzzer
二是在调用被fuzz的API之前添加HF_ITER获取输入,然后运用hfuzz_cc/hfuzz_clang test.c -o test ~/honggfuzz/libfuzz/libfuzz.a指令编译,honggfuzz -P -- ./
如何稳妥快速完善区块链技术并有序推动商用? 浩大的区块链盛宴正在开场,各方人士、各路豪杰、各种资金,陆续入席。海量资金砸进来,精英人才向区块链成群结队地迁徙。 在区块链这条赛道上,不仅是大量新锐...
鹿特丹伊拉斯姆斯大学:学校概况 鹿特丹伊拉斯姆斯大学(荷兰文:Erasmus Universiteit Rotterdam,英文: Erasmus University Rotterdam)简称EU...
在过年的时候似乎大家都会对孩子进行放松,很多的东西不让孩子多吃的会让孩子吃,只希望孩子能开开心心的过年,但是在过年的同时也会给一些家长带来困扰,孩子是不知道多少的,喜欢的就会一直吃,下面友谊长存的小编...
鄢怎么读?鄢是什么意思?鄢的词语出处也是那里?很多人在生活、学习中遇到“鄢”这个词,大家都不知道怎么读这个生僻字。你想知道这些有趣的生僻字怎么读吗?豪友网专门精心整理了生僻字怎么读相关的内容,为你释疑...
如今的手机微信与其说一项个人的闲聊室内空间,APP还不如把它当作一个工作中号,很多人都把手机微信当做日常的工作中来实际操作的。很多人根据这一个手机微信也是找到归属于自身的服务平台,例如一些微商代理...
本文导读目录: 1、黑客会被判刑吗 2、勒索病毒黑客在我国有什么法律待遇 3、因为做黑客被骗钱了怎么办 4、哪些黑客行为属于犯罪和非犯罪 5、在中国 如果有黑客攻击了国家机关的网络 会...