RuzzyをLibAFLで拡張する ノート

RuzzyをLibAFLで拡張する

この投稿では、RubyファザーであるRuzzyにLibAFLを統合するプロセスを詳述しています。著者はまず、LibAFLの利点とlibFuzzerを置き換える意図を強調しています。Dockerfiles内でLibAFLのlibFuzzerライブラリをビルドし、ENV変数経由でのLibAFLの使用に対応するためにRuzzyのビルドプロセスに若干の変更を加えています。リンク中に問題が発生し、特に「.preinit_arrayセクションはDSOでは許可されていません」というエラーが発生します。このエラーを克服するために、GNU ldの代わりにLLVMのリンカー(lld)を使用する必要があります。著者はDockerfileとextconf.rbを変更してリンカーを指定します。ビルドの問題が解決された後、著者はファザーを実行しようとします。しかし、「マップが利用できません。ファジングできません!」というエラーが発生し、SanitizerCoverageの初期化に問題があることを示しています。著者はこの問題を調査して対処する予定です。その結果、著者はcargo機能を使用してpreinit_arrayセクションを防ぐことで、適切な修正をアップストリームに提案する予定です。最後に、投稿はファザーの実行に焦点を当て、サニタイズの問題を修正する次のステップを予測して締めくくられています。