您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“在沒有源代碼的情況下如何對Linux二進(jìn)制代碼進(jìn)行模糊測試”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“在沒有源代碼的情況下如何對Linux二進(jìn)制代碼進(jìn)行模糊測試”這篇文章吧。
AFL配合DynamoRIO,沒錯,就是drAFL。在drAFL的幫助下,我們就可以在沒有源代碼的情況下對LInux二進(jìn)制代碼進(jìn)行模糊測試了。
原始版本的AFL支持使用QEMU模式來對待測目標(biāo)進(jìn)行黑盒測試,因此在使用drAFL之前,作者強烈建議大家先嘗試使用一下原始版本的AFL,如果達(dá)不到各位的目標(biāo),再來使用drAFL。
首先,你需要定義DRRUM_PATH值來指向drrun啟動工具,并設(shè)置LIBCOV_PATH來指向libbinafl.so代碼覆蓋庫。除此之外,你還需要設(shè)置AFL的fork服務(wù)器(AFL_NO_FORKSRV=1),或者設(shè)置“AFL_SKIP_BIN_CHECK=1”。具體請參考代碼構(gòu)建部分的第五步。
注意:請注意,針對64位代碼庫,你需要使用64位的DynamoRIO,如果使用的是32位的代碼庫,你就需要使用32位的DynamoRIO了,否則工具將無法正常運行。你可以使用下列命令來確保項目運行在DynamoRIO下:
drrun -- <path/to/your/app/> <app_args>
第一步:將drAFL代碼庫克隆到本地。
git clone https://github.com/mxmssh/drAFL.git /home/max/drAFLcd/home/max/drAFL
第二步:克隆并構(gòu)建DynamoRIO。
git clone https://github.com/DynamoRIO/dynamoriomkdir build_drcd build_dr/cmake../dynamorio/make -jcd ..
如果在DynamoRIO的編譯環(huán)節(jié)遇到問題的話,可以參考這篇【文檔】。
第三步:構(gòu)建代碼覆蓋工具。
mkdir buildcd buildcmake ../bin_cov/ -DDynamoRIO_DIR=../build_dr/cmakemake -jcd ..
第四步:構(gòu)建AFL。
cd afl/makecd ..
第五步:配置環(huán)境變量并執(zhí)行掃描任務(wù)。
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秒的執(zhí)行時間。
以上是“在沒有源代碼的情況下如何對Linux二進(jìn)制代碼進(jìn)行模糊測試”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。