開始第一次afl-fuzz
afl-fuzz全稱american fuzzy loop,是一款特別強大的fuzzing工具。fuzzing是指模糊測試,fuzzing起源很早,其思想是通過自動化產生大量的無目的輸入來對目標系統進行測試。afl也是根據這一基本原理,再結合幾位大佬的巧妙的構思而產生。其具體的原理、fork策略、變異策略有空的時候更新
$ git clone
之後在afl資料夾中執行
$ make
$ make
install //如果安裝報許可權的錯,那麼就 $ sudo
make
install
可以輸入afl-fuzz -h檢視是否安裝成功,安裝成功則會出現afl-fuzz的–help介面。
$ gcc --version
$ clang --version
$ gedit ~/.bashrc
export path=$llvm_home:$path
source ~/.bashrc
再進入afl的資料夾,找到llvm_mode資料夾進入,執行make。afl-clang就可以執行了。
就和學一門語言都要先輸入"hello world"一樣,我們也用乙個簡單的例子開始fuzzing。
新建乙個資料夾,目錄下建立test.c檔案,並在該資料夾下新建兩個資料夾分別為in 和out 。在in資料夾中建立testcase文字檔案,隨意輸入一點文字,作為起始種子。
echo
"asdsas"
>> testcase
test.c檔案內容如下。
#include
#include
#include
#include
intmain
(int ar**,
char
*ar**)
;gets
(c);
//gets函式存在棧溢位漏洞
int l =
strlen
(c);
if(c[0]
=='a'
&&l ==20)
else
if(c[0]
=='a'
&&c[1]
=='b'
&&l ==12)
else
return
0;}
將上面的**使用afl插樁
$ afl-gcc -g test.c -o test
test檔案就是插樁好的測試檔案。下面使用afl-fuzz工具,執行介面最好全屏顯示。
$ afl-fuzz -i in -o out ./test
······先寫這麼多 kmp從入門到放棄
標籤 kmp 擴充套件kmp 給你兩個字串,你需要回答,b串是否是a串的子串 a串是否包含b串 a aaaaaaaaaaaaaaaaaaaaaaaaaab b aaaaaaaab 最壞狀態 o mn 一般做法 for 列舉b在a串中的起始位置 for 向後比較ab是否相等 o n m 傳說中的kmp...
beego 從入門到放棄
beego 的專案基本都是通過 bee命令來建立的,所以在建立專案之前確保你已經安裝了 bee 工具和 beego。如果你還沒有安裝,那麼請查閱 beego 的安裝 和 bee 工具的安裝 現在一切就緒我們就可以開始建立專案了,開啟終端,進入 gopath src 所在的目錄 建立乙個專案名為201...
Flutter從入門到放棄
本篇主要記錄下flutter的學習路線。一 認識flutter 可以檢視這些文章 二 dart語言 1 認識dart語言 2 學習 從2018.02開始出現dart2,屬於強型別語言。介紹位址參考 三 開始flutter 網上也有很多部落格介紹了flutter怎麼安裝,但大多介紹不全,第一次安裝難免...