MASTG-TOOL-0036 r2frida
r2frida は、radare2 を Frida に接続できるプロジェクトであり、radare2 の強力なリバースエンジニアリング機能と Frida の動的計装ツールキットを効果的に融合しています。r2frida は Android と iOS の両方で使用でき、以下のことが可能です。
USB または TCP 経由で、任意のローカルプロセスまたはリモート frida-server に radare2 をアタッチします。
ターゲットプロセスからのメモリを読み書きします。
マップ、シンボル、インポート、クラス、メソッドなどの Frida 情報を radare2 にロードします。
Frida Javascript API に r2pipe インタフェースを公開して、Frida から r2 コマンドを呼び出します。
r2frida の公式インストール手順 を参照してください。
frida-server が実行中であれば、pid、spawn パス、ホストとポート、デバイス ID を使用してアタッチできるはずです。たとえば PID 1234 にアタッチするには以下のようにします。
r2 frida://1234frida-server への接続方法のさまざまな例については、r2frida の README ページの usage セクションを参照してください 。
以下の例は Android アプリを使用して実行していますが、iOS アプリにも適用できます。
r2frida セッションに入ると、すべてのコマンドは : または =! で始まります。たとえば、radare2 ではバイナリ情報を表示するために i を実行しますが、r2frida では :i を使用します。
r2 frida://?ですべてのオプションを表示します。
[0x00000000]> :i
arch x86
bits 64
os linux
pid 2218
uid 1000
objc false
runtime V8
java false
cylang false
pageSize 4096
pointerSize 8
codeSigningPolicy optional
isDebuggerAttached falseメモリ内で特定のキーワードを検索するには、検索コマンド :/ を使用します。
検索結果を JSON 形式で出力するには、前の検索コマンドに (r2 シェルで行うのと同様に) j を追加するだけです。これはほとんどのコマンドで使用できます。
ロードされたライブラリをリストするには、コマンド :il を使用し、コマンド ~ で radare2 内部の grep を使用して結果をフィルタします。たとえば、以下のコマンドは keystore、ssl、crypto というキーワードにマッチするロードされたライブラリをリストします。
同様に、エクスポートをリストし、特定のキーワードで結果をフィルタするには、以下のようにします。
ブレークポイントをリストまたは設定するには、コマンド db を使用します。これはメモリを解析/変更する際に便利です。
最後に、:. にスクリプト名を加えることで、Frida JavaScript コードを実行できることも覚えておいてください。
Wiki プロジェクトの r2frida の使い方 に多くの例があります。
Last updated
Was this helpful?