这篇文章主要为大家展示了“在没有源代码的情况下如何对Linux二进制代码进行模糊测试”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在没有源代码的情况下如何对Linux二进制代码进行模糊测试”这篇文章吧。
创新互联-专业网站定制、快速模板网站建设、高性价比海北州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式海北州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖海北州地区。费用合理售后完善,十余年实体公司更值得信赖。
AFL配合DynamoRIO,没错,就是drAFL。在drAFL的帮助下,我们就可以在没有源代码的情况下对LInux二进制代码进行模糊测试了。
原始版本的AFL支持使用QEMU模式来对待测目标进行黑盒测试,因此在使用drAFL之前,作者强烈建议大家先尝试使用一下原始版本的AFL,如果达不到各位的目标,再来使用drAFL。
首先,你需要定义DRRUM_PATH值来指向drrun启动工具,并设置LIBCOV_PATH来指向libbinafl.so代码覆盖库。除此之外,你还需要设置AFL的fork服务器(AFL_NO_FORKSRV=1),或者设置“AFL_SKIP_BIN_CHECK=1”。具体请参考代码构建部分的第五步。
注意:请注意,针对64位代码库,你需要使用64位的DynamoRIO,如果使用的是32位的代码库,你就需要使用32位的DynamoRIO了,否则工具将无法正常运行。你可以使用下列命令来确保项目运行在DynamoRIO下:
drrun --
第一步:将drAFL代码库克隆到本地。
git clone https://github.com/mxmssh/drAFL.git /home/max/drAFLcd/home/max/drAFL
第二步:克隆并构建DynamoRIO。
git clone https://github.com/DynamoRIO/dynamoriomkdir build_drcd build_dr/cmake../dynamorio/make -jcd ..
如果在DynamoRIO的编译环节遇到问题的话,可以参考这篇【文档】。
第三步:构建代码覆盖工具。
mkdir buildcd buildcmake ../bin_cov/ -DDynamoRIO_DIR=../build_dr/cmakemake -jcd ..
第四步:构建AFL。
cd afl/makecd ..
第五步:配置环境变量并执行扫描任务。
cd buildmkdir inmkdir outecho "AAAA" > in/seedexport DRRUN_PATH=/home/max/drAFL/build_dr/bin64/drrunexport LIBCOV_PATH=/home/max/drAFL/build/libbinafl.soexport AFL_NO_FORKSRV=1export AFL_SKIP_BIN_CHECK=1../afl/afl-fuzz-m none -i in -o out -- ./afl_test @@
注意:对于afl_test测试样例,可能需要大概25-30秒的执行时间。
以上是“在没有源代码的情况下如何对Linux二进制代码进行模糊测试”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!