afl-first-try

This commit is contained in:
Cool-Y 2019-07-09 17:11:16 +08:00
parent ab023ccb43
commit 875b401d8b

View File

@ -53,14 +53,14 @@ categories: 二进制
1用`make`编译AFL。如果构建失败请参阅docs / INSTALL以获取提示。 1用`make`编译AFL。如果构建失败请参阅docs / INSTALL以获取提示。
2查找或编写一个相当快速和简单的程序该程序从***文件或标准输入***中获取数据以一种有价值的方式处理它然后干净地退出。如果测试网络服务请将其修改为在前台运行并从stdin读取。在对使用校验和的格式进行模糊测试时也要注释掉校验和验证码。 2查找或编写一个相当快速和简单的程序该程序从***文件或标准输入***中获取数据以一种有价值的方式处理它然后干净地退出。如果测试网络服务请将其修改为在前台运行并从stdin读取。在对使用校验和的格式进行模糊测试时也要注释掉校验和验证码。
遇到故障时程序必须正常崩溃。注意自定义SIGSEGV或SIGABRT处理程序和后台进程。有关检测非崩溃缺陷的提示请参阅```docs/README```中的第11节。 遇到故障时程序必须正常崩溃。注意自定义SIGSEGV或SIGABRT处理程序和后台进程。有关检测非崩溃缺陷的提示请参阅`docs/README`中的第11节。
3使用afl-gcc编译要模糊的程序/库。一种常见的方法是: 3使用afl-gcc编译要模糊的程序/库。一种常见的方法是:
``` ```
$ CC = /path/to/afl-gcc CXX =/path/to/afl-g++ ./configure --disable-shared $ CC = /path/to/afl-gcc CXX =/path/to/afl-g++ ./configure --disable-shared
$ make clean all $ make clean all
``` ```
如果程序构建失败,请联系 <afl-users@googlegroups.com> 如果程序构建失败,请联系 <afl-users@googlegroups.com>
4获取一个对程序有意义的小而有效的输入文件。在模糊详细语法SQLHTTP等也要创建字典如```dictionaries/README.dictionaries```中所述。 4获取一个对程序有意义的小而有效的输入文件。在模糊详细语法SQLHTTP等也要创建字典如`dictionaries/README.dictionaries`中所述。
5如果程序从stdin读取则运行`afl-fuzz`,如下所示: 5如果程序从stdin读取则运行`afl-fuzz`,如下所示:
`./afl-fuzz -i testcase_dir -o findings_dir -- /path/to/tested/program [... program's cmdline ...] ` `./afl-fuzz -i testcase_dir -o findings_dir -- /path/to/tested/program [... program's cmdline ...] `
   如果程序从文件中获取输入,则可以在程序的命令行中输入@@; AFL会为您放置一个自动生成的文件名。    如果程序从文件中获取输入,则可以在程序的命令行中输入@@; AFL会为您放置一个自动生成的文件名。