歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

模糊測試工具WinAFL使用指南

來源:本站整理 作者:佚名 時間:2019-11-07 TAG: 我要投稿

一、簡介
WinAFL 是一款流行的基于 Windows 平臺下的半自動二進制文件格式模糊測試工具,屬于 AFL 大家族中的一員,早期的 AFL 測試工具多半是基于 Linux,并不支持 Windows,所以 WinAFL 彌補了這一空白,當然現在越來越多的 AFL 以及其他模糊測試工具適用于 Windows 平臺。
WinAFL 的原理和其他的模糊測試工具類似,通過對程序輸入的數據進行變異處理,觀察程序在處理這些變異數據是否會產生 Crash,以此來驗證程序是否有 Bug。但是相對于其它模糊測試工具來說則更為智能,因為它會通過進化算法不停的改變程序輸入的數據,并且結合程序的覆蓋率以進行下一步操作。并且運行的速度越快,效果越明顯(天下武功,無堅不破,唯快不破)。

WinAFL 項目地址:https://github.com/ivanfratric/winafl
DynamoRIO 項目地址:https://github.com/DynamoRIO/dynamorio/wiki/Downloads
二、WinAFL 原理及使用(挑了幾個重要的)
使用 DynamoRIO 進行二進制插樁
WinAFL 的使用非常簡單,首先需要了解的是二進制插樁工具 DynamoRIO,它的功能非常的多,在這里主要用它來分析代碼的覆蓋率,也就是程序運行時會執行哪些匯編代碼塊。命令如下所示,-t drcov 表示使用代碼覆蓋率模塊,xmlvalidate.exe 表示需要測試的軟件,nn-valid.xml 表示生成的結果文件。
E:\DynameRIO-7.0.0\bin32\drrun.exe -t drcov -- xmlvalidate.exe nn-valid.xml
命令執行結束之后,會在當前目錄中產生 nn-valid.xml 文件,之后在 IDA 中打開它即可顯示 xmlvalidate.exe 的代碼覆蓋率,這里需要用到 lighthouse IDA 插件或者是 Qt5 的界面。

如下圖所示可以看出被測試軟件部分函數的代碼覆蓋率及塊命中次數。

當然也可以顯示函數執行的流程,白色區域表示未執行的部分。

使用 winafl-cmin.py 進行案例最小化處理
如下圖所示,該命令主要是為對輸入的樣本文件進行最小化處理,以用來提高 WinAFL 的執行效率。命令如下,–working-dir 表示 winafl 命令文件夾的路徑,-D 表示插樁工具 DynamoRIO 的命令文件夾路徑(如果測試程序是 32 位的就用 bin32,反之則用 bin64),-i 表示需要篩選的測試用例存放目錄,-o 表示將篩選過后的測試用例的存放目錄,-coverage_module 表示需要覆蓋的模塊(如果不需要覆蓋其他模塊的話就填寫為當前模塊 xmlvalidate.exe),-target_module 表示被測模塊,-target_method 表示被測模塊函數的地址(也可以用偏移量 -target_offset 表示),最后就是參數的個數和程序的路徑,@@ 引用 -i 參數的中的測試用例。
E:\winafl\python winafl-cmin.py --working-dir E:\winafl\bin32
                                -D E:\DynamoRIO-7.0.0\bin32
                                -t 100000
                                -i E:\xml_fuzz\samples
                                -o E:\minset_xml
                                -coverage_module msxml6.dll
                                -target_module xmlvalidate.exe
                                -target_method fuzzme [-target_offset 0x1000]
                                -nargs 2 -- E:\xml_fuzz\xmlvalidate.exe @@
使用 afl-fuzz.exe 命令執行模糊測試
命令如下,-i 表示輸入的測試文件用例,-o 是輸出結果的目錄,-fuzz_iterations 表示迭代的次數,其他參數和上面的意思是一樣的。
E:\winafl\bin32\afl-fuzz.exe -i E:\minset_xml
                             -o E:\xml\results

[1] [2] [3] [4]  下一頁

【聲明】:黑吧安全網(http://www.nkppsz.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        秒速时时彩骗局