frida-script-review について
frida-script-review は、公開済み、生成済み、または変更の多い Frida スクリプトを実行する前に確認するスキルです。プラットフォーム前提、Hook のタイミング、変更リスク、安全性を点検し、修正と検証を提案します。
主な機能
- 01プラットフォーム前提の特定
- 02変更箇所とタイミングの確認
- 03ポインター、オーバーロード、寿命の点検
- 04危険な Hook とログの指摘
- 05修正案と検証方法の提示
活用シーン
- 01生成された Frida スクリプトの実行前レビュー
- 02対象動作に絞った Hook の整理
- 03ポインターや文字列処理のリスク確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rudra-ravi/ frida-skills --skill frida-script-reviewインストール後、Claude Code で/frida-script-reviewを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
Frida スクリプトのレビュー
公開されているスクリプト、生成されたスクリプト、または変更量の多い Frida スクリプトを実行する前に、このスキルを使用してください。
レビューパス
- プラットフォームの前提条件を特定します:Android、iOS、ネイティブ、デスクトップ、Gadget。
- 変更箇所を特定します:戻り値の置換、引数の書き換え、ファイルへの書き込み、プロセス制御、ネットワークの変更。
- タイミングを確認します:spawn と attach、モジュールの読み込み、クラスローダー、ObjC の利用可否。
- 安全性を確認します:null ポインター、オーバーロード、文字列のライフタイム、
retvalのコピー、再帰、過剰なフック。 - 広範なフックのまとまりを、対象の動作に関連するフックに絞ります。
危険な兆候
- どのフックが発火したかを確認せずに、無差別にすべてをバイパスする。
- null または長さを確認せずに、ネイティブポインターを読み取る。
- バッファーサイズを確認せずに、固定長バッファー内の文字列を置換する。
- オーバーロードがある場合に、明示的なオーバーロードを指定せずに Java メソッドをフックする。
ObjC.availableとクラス/メソッドの存在を確認せずに、ObjC セレクターが存在すると想定する。retvalまたは引数のラッパーをコピーせず、後で使用するために保存する。- 必要のない秘密情報をログに出力する。
強化パターン
変更前:
console.log("hook fired", targetName);
console.log(Thread.backtrace(this.context, Backtracer.ACCURATE)
.map(DebugSymbol.fromAddress).join("\n"));
確認後:
if (shouldPatchThisCall()) {
retval.replace(1);
}
出力
以下を返します:
- リスクの概要。
- 維持、削除、変更する正確な行またはフックブロック。
- より安全にレビューされたスクリプトまたはパッチ。
- 検証コマンドと、確認できる証拠。
参考資料
- Frida JavaScript API:https://frida.re/docs/javascript-api/
- Frida のトラブルシューティング:https://frida.re/docs/troubleshooting/
- Frida CodeShare:https://codeshare.frida.re/
コメント
Markdown 対応