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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
r2frida — Radare2とFridaは一緒に使うとより優れています。 | Kitploit
ツール/GitHubGitHub/nowsecure/r2frida
Androidセキュリティ静的分析動的分析 (サンドボックス)iOSセキュリティリバースエンジニアリングデバッガペネトレーションテストモバイルセキュリティバイナリ解析
GitHubnowsecure/r2frida

r2frida

Radare2とFridaは一緒に使うとより優れています。

リポジトリを見る
1.4k1409日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

r2frida

Radare2とFridaのより良い連携 ci radare2

説明

radare2 向けの自己完結型プラグインで、frida を内蔵しています。Frida スクリプトに限定せず、r2 コマンドを使用してローカルまたはリモートのプロセスをインストルメント化できます(Frida スクリプトも使用可能)。

radareプロジェクトはリバースエンジニアリングのための完全なツールチェーンを提供し、積極的にメンテナンスされており、十分に整備された機能を提供するとともに、他のプログラミング言語やツールで機能を拡張できます。

Frida は動的インストルメンテーションツールキットであり、独自の JavaScript を注入して実行中のプロセスを検査・操作したり、必要に応じてスクリプトと通信したりすることが容易です。

機能

  • 未改変の Frida スクリプトを実行可能(:. コマンドを使用)
  • 任意のプロセスで C、JavaScript、TypeScript のスニペットを実行
  • ローカルまたはリモートシステムにアタッチ、スポーン、起動が可能
  • セクション、シンボル、エクスポート、プロトコル、クラス、メソッドの一覧表示
  • エージェント側またはホスト側からメモリ内の値を検索
  • メソッド実装の置き換えやフックを短いコマンドで作成
  • ターゲットプロセスへのライブラリやフレームワークのロード
  • Dalvik、Java、ObjC、Swift、C インターフェースのサポート
  • ファイルディスクリプタや環境変数の操作
  • プロセスへのシグナル送信、続行、ブレークポイント
  • r2frida の io プラグインはファイルシステム fs および debug バックエンドとしても動作
  • r2pipe を使用した r2 と frida の自動化
  • プロセスメモリの読み取り/書き込み
  • 関数、システムコール、生のコードスニペットの呼び出し
  • USB または TCP/IP 経由で frida-server に接続
  • アプリとプロセスの列挙
  • レジスタ、関数の引数のトレース
  • x64、arm32、arm64 でテスト済み(Linux、Windows、macOS、iOS、Android)
  • ホストに frida をインストールする必要なし(frida-tools は不要)
  • エージェント内で動作するプラグインで r2frida コマンドを拡張
  • ページ権限の変更、コードとデータのパッチ
  • 名前またはアドレスでシンボルを解決し、フラグとして r2 にインポート
  • エージェントからホスト上で r2 コマンドを実行
  • リモートターゲットプロセス内で r2 API を使用し、r2 コマンドを実行
  • :db API を使用したネイティブブレークポイント
  • r_fs API を使用したリモートファイルシステムへのアクセス

インストール

推奨されるインストール方法は r2pm を使用するものです:

root@kitploit:~
$ r2pm -ci r2frida

コンパイル不要のバイナリビルドは、近日中に r2pm および r2env でサポートされる予定です。それまでの間は、Releases ページ から最新ビルドをダウンロードしてください。

コンパイル

依存関係

  • radare2
  • pkg-config(Windows では不要)
  • curl または wget
  • make, gcc
  • npm, nodejs(まもなく不要になります)

GNU/Debian では、以下のパッケージをインストールする必要があります:

root@kitploit:~
$ sudo apt install -y make gcc libzip-dev nodejs npm curl pkg-config git

手順

root@kitploit:~
$ git clone https://github.com/nowsecure/r2frida.git
$ cd r2frida
$ make
$ make user-install

Windows

  • meson と Visual Studio をインストール
  • 最新の radare2 リリース zip を r2frida ルートディレクトリに展開
  • ディレクトリ名を radare2 に変更(radare2-x.y.z の代わりに)
  • VS コンパイラを PATH で使用可能にする(preconfigure.bat)
  • configure.bat を実行し、その後 make.bat を実行

使用法

テスト用には、r2 frida://0 を使用します。frida で pid0 にアタッチすると、ローカルで動作する特別なセッションになります。その後 :? コマンドで利用可能なコマンド一覧を表示できます。

root@kitploit:~
$ r2 'frida://?'
r2 frida://[action]/[link]/[device]/[target]
* action = list | apps | attach | spawn | launch
* link   = local | usb | remote host:port
* device = '' | host:port | device-id
* target = pid | appname | process-name | program-in-path | abspath
ローカル:
* frida://?                        # このヘルプを表示
* frida://                         # ローカルプロセス一覧
* frida://0                        # frida-helper にアタッチ(スポーン不要)
* frida:///usr/local/bin/rax2      # 絶対パスでスポーン
* frida://rax2                     # 上記と同じ、local/bin が PATH にある場合
* frida://spawn/$(program)         # 現在のシステムで新しいプロセスをスポーン
* frida://attach/(target)          # 現在のホストでターゲット PID にアタッチ
USB:
* frida://list/usb//               # 最初の USB デバイスのプロセス一覧
* frida://apps/usb//               # 最初の USB デバイスのアプリ一覧
* frida://attach/usb//12345        # 最初の USB デバイスの指定 PID にアタッチ
* frida://spawn/usb//appname       # 最初に解決された USB デバイスでアプリをスポーン
* frida://launch/usb//appname      # 最初の USB デバイスでアプリをスポーン+再開
リモート:
* frida://attach/remote/10.0.0.3:9999/558 # リモート frida-server の PID 558 に TCP でアタッチ
環境変数:(`%` コマンドを使用して実行時に環境を変更できます)
  R2FRIDA_SAFE_IO=0|1              # Android/thumb での Frida のバグを回避する
  R2FRIDA_DEBUG=0|1                # 引数解析の動作をデバッグするために使用
  R2FRIDA_COMPILER_DISABLE=0|1     # 新しい frida typescript コンパイラを無効にする (`:. foo.ts`)
  R2FRIDA_AGENT_SCRIPT=[file]      # r2frida エージェントのファイルパス

例

root@kitploit:~
$ r2 frida://0     # frida -p 0 と同じ、ローカルセッションに接続

名前または PID で任意のプログラムにアタッチ、スポーン、起動できます。次の行は rax2 という名前の最初のプロセスにアタッチします(別のターミナルで rax2 - を実行してテストしてください)

root@kitploit:~
$ r2 frida://rax2  # `rax2` という名前の最初のプロセスにアタッチ
$ r2 frida://1234  # 指定された PID にアタッチ

バイナリの絶対パスを使用してスポーンすると、プロセスが起動します:

root@kitploit:~
$ r2 frida:///bin/ls
[0x00000000]> :dc        # ターゲットプログラムの実行を続行

引数も使用できます:

root@kitploit:~
$ r2 frida://"/bin/ls -al"

USB デバッグで iOS/Android アプリをデバッグするには、次のアクションを使用します。spawn は launch または attach に置き換え可能で、プロセス名は bundleid または PID にできます。

root@kitploit:~
$ r2 frida://spawn/usb/         # デバイス一覧
$ r2 frida://spawn/usb//        # 最初の iOS デバイスのアプリ一覧
$ r2 frida://spawn/usb//Weather # Weather アプリを実行

コマンド

以下は最も頻繁に使用するコマンドです。これらを覚え、サブコマンドのヘルプを表示するには末尾に ? を付けてください。

root@kitploit:~
:i        # ターゲットの情報を取得(pid、name、home、arch、bits...)
.:i*      # ターゲットプロセスの詳細をローカル r2 にインポート
:?        # 利用可能なすべてのコマンドを表示
:dm       # マップ一覧。`:dm|head` を使用し、プログラムのベースアドレスにシーク
:iE       # 現在のバイナリのエクスポート一覧(シーク位置)
:dt fread # 'fread' 関数をトレース
:dt-*     # すべてのトレースを削除

プラグイン

r2frida プラグインはエージェント側で動作し、r2frida.pluginRegister API で登録します。

その他のプラグインスクリプトの例については、plugins/ ディレクトリを参照してください。

root@kitploit:~
[0x00000000]> cat example.js
r2frida.pluginRegister('test', function(name) {
  if (name === 'test') {
    return function(args) {
      console.log('Hello Args From r2frida plugin', args);
      return 'Things Happen';
    }
  }
});
[0x00000000]> :. example.js   # プラグインスクリプトを読み込む

:. コマンドは r2 の . コマンドと同様に動作しますが、エージェント内で実行されます。

root@kitploit:~
:. a.js  # プラグインを登録するスクリプトを実行
:.       # プラグイン一覧
:.-test  # 名前を指定してプラグインをアンロード
:.. a.js # スクリプトを永続化(デタッチ後も実行を継続)

Termux

Android 上で Termux を使用して r2frida をネイティブにインストール・使用する場合、シンボル解決に関するライブラリ依存関係にいくつかの注意点があります。これを機能させるには、Termux の libdir よりも前にシステムディレクトリを指すように LD_LIBRARY_PATH 環境変数を拡張します。

$ LD_LIBRARY_PATH=/system/lib64:$LD_LIBRARY_PATH r2 frida://...

トラブルシューティング

最新バージョンの r2 を使用していることを確認してください(可能であれば最新リリースまたは git 版)。

r2 -L | grep frida を実行してプラグインが読み込まれているか確認します。何も表示されない場合は、R2_DEBUG=1 環境変数を使用してデバッグメッセージを表示し、原因を特定してください。

r2frida のコンパイルに問題がある場合は、r2env を使用するか、GitHub Releases ページからリリースビルドを取得してください。ただし、MAJOR.MINOR バージョンが一致している必要があることに注意してください。つまり、r2-5.7.6 は 5.7.0 から 5.7.8 の間の任意のバージョンでコンパイルされたプラグインを読み込むことができます。

設計

root@kitploit:~
 +---------+
 | radare2 |     土台の上にある radare2 ツール
 +---------+
      :
 +----------+
 | io_frida |     r2frida io プラグイン
 +----------+
      :
 +---------+
 |  frida  |     ターゲットとやり取りする Frida ホスト API とロジック
 +---------+
      :
  +-------+
  |  app  |      JavaScript で Frida によってインストルメント化されたターゲットプロセス
  +-------+

クレジット

このプラグインは、pancake(別名 Sergi Alvarez、radare2 の作者)によって NowSecure 向けに開発されました。

Frida の作成とメンテナンス、そしてこの連携を機能させるために必要なあらゆるバグ修正や技術詳細の議論に積極的に協力してくれた Ole André に感謝します。称賛

ツールをダウンロード