
radare2のパッケージマネージャーであるr2pm用のパッケージデータベース。radare2のプラグイン、スクリプト、および関連するリバースエンジニアリングユーティリティ向けのインストールフックとバイナリパッケージを提供します。
このリポジトリは r2pm -U によって取得され、パッケージデータベースを提供します。
これらのパッケージはユーザーのホームディレクトリにインストールされ、radare2 用のプラグインやスクリプト、あるいは r2 に関連するユーティリティやプログラムである場合もあります。
r2pm については https://github.com/radareorg/radare2 を参照してください。
$ r2pm -U
$ r2pm -ci r2frida
export R2PM_DBDIR="$PWD/db"
# export R2PM_GITDIR="/path/to/the/root/folder/of/the/local/repository"
# export R2PM_USRDIR="/path/to/usr/dir"
Windows のインストールおよびアンインストールフックはネイティブのバッチ構文を使用します。失敗時には command || exit /b 1 で明示的に停止してください。これにより負の終了コードも捕捉できます。別のバッチファイルを呼び出す際は call helper.cmd || exit /b 1 を使用し、実行がフックに戻るようにしてください。環境変数の変更は行をまたいで保持されます。複数行の if/else ブロックや ^ による継続は通常の CMD の規則に従います。
r2pm -bi r2frida を使用すると、ソースをクローンしたりコンパイルしたりせずにリリース済みのバイナリをインストールできます。R2V はリリースを選択し、デフォルトではインストール済みの radare2 のバージョンになります:
R2V=6.2.2 r2pm -bi r2frida
必要に応じて、R2PM_PLATFORMS でサポートするオペレーティングシステム、ランタイム、または正確なターゲットを宣言できます:
R2PM_PLATFORMS "linux darwin windows"
# For a portable r2js script instead:
R2PM_PLATFORMS "r2js"
# For a package restricted to 32-bit x86 Linux instead:
R2PM_PLATFORMS "linux-x86-32"
スペース区切りのタグはパッケージ検索のフィルタリングを制御し、r2pm -sj の platforms 配列に反映されます。termux などその他のタグも、サポートされている場合には宣言できます。この宣言は任意です。宣言がないパッケージ、または値が空のパッケージは、インストールフックからのプラットフォーム推論を維持し、既存のインストール動作を保ちます。正確な os-arch-bits の三つ組は、アーキテクチャとビット数を含めて r2pm -H R2PM_TRIPLET と照合されます。複数のエントリは代替を意味するため、三つ組とともに linux を追加すると、すべての Linux アーキテクチャが許可されます。JSON では、R2PM_BINSTALL* フックが存在する場合に binary: true も公開されます。すぐに使えるスクリプトもバイナリインストールとして扱われます。プラットフォームタグは、すべてのリリースに対してバイナリを保証するものではありません。
パッケージは、Unix シェルコマンド用に R2PM_BINSTALL() を、Windows コマンド用に R2PM_BINSTALL_WINDOWS() を提供します。これらのフックはソースのチェックアウトなしで実行され、R2V、R2PM_OS (linux、darwin、windows など)、R2PM_ARCH (x86、arm など)、R2PM_BITS (32 または 64)、および R2PM_TRIPLET (<os>-<arch>-<bits>、例えば linux-x86-64) を受け取り、通常の R2PM_PLUGDIR、R2PM_BINDIR などの r2pm ディレクトリにインストールします。-g はシステムのプラグインディレクトリを選択し、Unix では R2PM_SUDO を提供します。
バイナリフックは、正確なバージョンとターゲットを選択し、自身のツールとランタイム依存関係を処理し、R2PM_OFFLINE を尊重し、バイナリが利用できない場合やインストールが失敗した場合には非ゼロを返す必要があります。R2PM_NEEDS と R2PM_DEPS はソースビルドの前提条件であり、スキップされます。ソースへのフォールバックはありません。r2pm はエラーを報告し、ユーザーに -b なしで再実行するよう求めます。
r2frida のフックは、Linux の .deb、macOS の .pkg、Windows の .zip のリリースアセットを r2pm ディレクトリに展開します。利用可否は選択したリリースに依存します。アーキテクチャやバージョンが見つからない場合は、別のリリースを使用するのではなく失敗します。