動機
macでAFL動かそうと思ったら環境依存っぽいエラーが出たので「それならdocker使ってみよう」と思い立ちました
やったこと
dockerコンテナ内でAFLを動かした
ソースコード
githubにあげました
やり方
- リポジトリをcloneしてくる
git clone https://github.com/umiyuri777/AFL_in_docker.git
- docker でビルド(コンパイルまで自動で行う)
docker buildx build --platform linux/amd64 -t afl-in-docker .
- dockerコンテナを起動
docker run -itd afl-in-docker
- コンテナ内に入る
# 起動したコンテナのコンテナIDを確認
docker ps
#コンテナの中に入る
docker exec -i -t <確認したコンテナID> /bin/bash
- AFLを起動
afl-fuzz -i test_in -o test_out -m none -- ./a.out
- 止めて結果を見る
# test_outフォルダの中に結果が入るようになってる
cd test_out
- 結果を利用して好きなように分析
出来なかったこと
-
IPAの資料7ページ目では、仮想環境内でRAMディスクを作成して方がSSDとかへのダメージが少ないとか書いてあったけどうまいこと行かなかった
(残骸がコメントアウトして残ってます) - コンテナを起動するとそのままファジングも実行して、コンテナ終了した後にエクスプローラーから実行結果が見れるようにしたかった