Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
frida-fuzzer — この実験的なファザーは、APIのインメモリファジングに使用することを意図しています。 | Kitploit
ツール/GitHubGitHub/andreafioraldi/frida-fuzzer
動的分析 (サンドボックス)エクスプロイトAPIセキュリティテストファジングモバイルセキュリティバイナリ解析Archived
GitHubandreafioraldi/frida-fuzzer

frida-fuzzer

この実験的なファザーは、APIのインメモリファジングに使用することを意図しています。

リポジトリを見る
577906年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Frida API ファザー

v1.4 著作権 (C) 2020 Andrea Fioraldi [email protected]

Apache License v2.0 のもとで公開されています

この実験的なファザーは、API のインメモリファジングに使用することを目的としています。

AFL/AFL++ を基盤として、その設計に強く影響を受けています。

現時点では、変異器は非常にシンプルで、AFL の havoc ステージと splice ステージのみです。

tests/ 以下のサンプルでのみテストしました。これは作業中のプロジェクトですが、少なくとも GNU/Linux x86_64 および Android x86_64 で動作することが確認されています。

これを実行するには Frida >= 12.8.1 が必要です(pip3 install -U frida)、およびハーネスをコンパイルするための frida-tools が必要です。

使用方法

fuzz ライブラリをカスタムハーネスにインポートし、frida-compile でコンパイルして、frida-fuzzer がターゲットアプリに注入するエージェントを生成する必要があります。

ファザーのロジックの大部分はエージェントにあります。

ハーネスは以下の形式になります。

root@kitploit:~
var fuzz = require("./fuzz");

var TARGET_MODULE = "test_linux64";
var TARGET_FUNCTION = DebugSymbol.fromName("target_func").address;;
var RET_TYPE = "void";
var ARGS_TYPES = ['pointer', 'int'];

var func_handle = new NativeFunction(TARGET_FUNCTION, RET_TYPE, ARGS_TYPES, { traps: 'all' });

fuzz.target_module = TARGET_MODULE;

var payload_mem = Memory.alloc(fuzz.config.MAX_FILE);

fuzz.fuzzer_test_one_input = function (/* Uint8Array */ payload) {

  Memory.writeByteArray(payload_mem, payload, payload.length);

  func_handle(payload_mem, payload.length);

}

fuzz.fuzzer_test_one_input は必須です。fuzz.target_module を指定しない場合、実行されるすべてのコードがインストルメントされます。

また、fuzz.manual_loop_start = true を設定することで、コールバック内で fuzz.fuzzing_loop() を呼び出すことをファザーに伝え、自動的に呼び出さないようにすることができます(例:Android アプリでボタンがクリックされたときにファジングを開始する場合など)。

コールバック fuzz.init_callback を設定すると、ファザーが開始準備ができたときにコードを実行できます。例として tests/test_java.js を参照してください。

fuzz.dictionary は古典的なファザーの辞書で、アイテム(受け入れられる型は Array、ArrayBuffer、Uint8Array、String)を追加できる配列であり、変異器で追加の値として使用されます。例として tests/test_libxml2.js を参照してください。

frida-fuzzer は以下の引数を受け付けます:

出力フォルダを指定しない場合、/tmp の下に一時フォルダが作成されます。

初期シードを含むフォルダを指定しない場合、未定義のシード 0000 が開始シードとして使用されます。

ローカルアプリケーションをファジングする場合、frida-fuzzer の前に system-config を実行してシステムパラメータを調整し、処理を高速化するとよいでしょう。

./frida-fuzzer -spawn ./tests/test_linux64 を実行すると、端末に次のようなステータス画面が表示されます:

screen

また、fuzz/fuzzer.js にカスタムステージを簡単に追加し、fuzz/index.js のステージリストに追加することができます。

ファザーをカスタマイズするには、fuzz/config.js を編集します。 変更したい変数は、MAP_SIZE(ファジングするコードが小さい場合は減らすことで少し高速化できます)、MAX_FILE(生成される入力の最大サイズ)、QUEUE_CACHE_MAX_SIZE(特に Android で速度向上のためにキューキャッシュサイズを増やす)です。

例

tests 内のサンプル Android アプリにあるネイティブ共有ライブラリをファジングしてみましょう。

仮想デバイスで root 権限があることを確認してください:

root@kitploit:~
host$ adb root

リポジトリのリリースページから Android x86_64 用の frida-server をダウンロードし、/data/local/tmp の下にコピーします(adb push を使用)。

シェルを起動し、frida-server を実行します:

root@kitploit:~
device# cd /data/local/tmp
device# ./frida-server

次に、テストアプリ tests/app-debug.apk をエミュレータウィンドウにドラッグ&ドロップしてインストールします。

その後、アプリを開きます。

エージェントスクリプトを frida-compile でコンパイルします:

root@kitploit:~
host$ frida-compile -x tests/test_ndk_x64.js -o fuzzer-agent.js

エミュレータでアプリを開きます。

テストアプリに含まれる libnative-lib.so ライブラリの test_func 関数を次のコマンドでファジングします:

root@kitploit:~
host$ ./frida-fuzzer -U -o output_folder/ com.example.ndktest1

興味深いテストケースとクラッシュは両方とも output_folder に保存されます。

お楽しみください。

screen1

TODO

OSS コミュニティの皆さん、貢献したい方のために多くの TODO があります。

  • Java コードのファジング(frida-java-bridge で追加の公開メソッドを待っています、簡単なはずで、ほぼ完了)
  • splice ステージ(キュー内の2つのテストケースをマージし、それに havoc を適用)
  • 辞書のサポート(およびそれに伴う havoc の修正)
  • シード選択
  • arm64 向けのインラインインストルメンテーション
  • パフォーマンススコアリング(AFL のスケジュール探索)
  • 構造的変異器(JSON で記述された文法に基づいてバイトを変異)
  • CompareCoverage(ファジングの障害を回避するためのサブインストラクションプロファイリング)
  • frida-fuzzer を C で frida-core を使って書き直し、モバイルデバイスで全てを実行可能にする

これらの機能のいずれかについて疑問があれば、Twitter で DM してください。

機能の提案については、Issues セクション があります。

ツールをダウンロード
-i FOLDER初期シードを含むフォルダ
-o FOLDER中間シードとクラッシュを含む出力フォルダ
-UUSB に接続
-spawn単にアタッチする代わりにスポーンしてアタッチ
-script SCRIPTスクリプトファイル名(デフォルトは fuzzer-agent.js)