
radare2 v6.2.0
UNIX系リバースエンジニアリングフレームワークおよびコマンドラインツールセット
Radare2: Unixギークのための自由なリバーシングフレームワーク
現在のgit masterブランチは6.2.3で、次のリリースは6.2.4になります。
説明
r2はradareの完全な書き直しです。リバースエンジニアリングタスクを容易にするためのライブラリ、ツール、プラグインのセットを提供します。LGPLv3の下で配布されていますが、各プラグインは異なるライセンスを持つことができます(詳細はr2 -Ljを参照)。
radareプロジェクトは、フォレンジックに焦点を当てたシンプルなコマンドラインヘックスエディタとして始まりました。今日、r2は組み込みのJavascriptインタプリタまたはr2pipeを介したスクリプトをサポートする、フル機能の低レベルコマンドラインツールです。
r2はローカルハードドライブ上のファイルを編集し、カーネルメモリを表示し、ローカルまたはリモートのgdb/windbgサーバーを介してプログラムをデバッグできます。r2の幅広いアーキテクチャサポートにより、あらゆるバイナリを分析、エミュレート、デバッグ、変更、逆アセンブルできます。
インストール
最新のリリースバイナリをダウンロードしてください。
radare2をインストールする推奨方法は、Gitリポジトリのソースからです:
git clone https://github.com/radareorg/radare2
radare2/sys/install.sh
- デフォルトのacr+make+symlinkインストールには
sys/install.shを実行します - meson/ninja(muon/samuも動作します)とmakeビルドがサポートされています。
Nix
radare2はdist/nixの下でNixパッケージングを提供しています。
ソースビルド
- r2は
gitから、またはr2envを使用してpip経由でインストールできます。 - Windowsビルドにはmesonとmsvcまたはmingwがコンパイラとして必要です
- 現在のr2ビルドをアンインストールするには
make uninstallを実行します - r2のすべてのシステムインストールをアンインストールするには:
sudo make purge
Windowsでは.batスクリプトとmsvcを使用します:
preconfigure.bat REM setup python, meson, ninja
configure.bat REM run meson b + vs project
make.bat REM run ninja -C b
prefix\bin\radare2.exe
人気のプラグイン:
r2pmツールを使用すると、radare2を使用する多くのプラグインやツールを閲覧してインストールできます。
- iaito: 公式のQtグラフィカルインターフェース
- keystone Keystoneライブラリを使用したアセンブラ命令
- decai AIベースのデコンパイラ
- r2ai r2内でLlamaを使用してlocalhostで言語モデルを実行!
- r2dec: JSで書かれたr2ベースのデコンパイラで、
pddコマンドでアクセスします - r2diaphora: radare2上のDiaphoraのバイナリ差分エンジン
- r2flutter: AndroidおよびiOSアプリのDart/Flutter AOTスナップショット分析
- r2frida: frida ioプラグイン。使用するには
r2 frida://0でr2を起動します - r2ghidra:
pdgでアクセスできるスタンドアロンのネイティブghidraデコンパイラ - r4ghidra: Ghidra内でradareの喜びを感じてください
- r2papi r2pipe上の高レベルAPI
- r2pipe 任意のプログラミング言語からradare2をスクリプト化
- r2poke 拡張バイナリ解析機能のためのGNU/Pokeとの統合
- goresym: GoReSymシンボルをフラグとしてインポート
- r2yara r2からYaraを実行するか、Yaraからr2プリミティブを使用
- radius2: boolectorとesilに基づく高速シンボリック実行エンジン
- r2sarif SARIFドキュメントのインポート/拡張/エクスポート
- r2hermes React Native Hermesバイトコードの逆アセンブラとアナライザ
- r2renef Radare2用Renef IOプラグイン - 動的Androidインストルメンテーション
- r2unity: radare2からUnity IL2CPPメタデータとネイティブバイナリを検査
- warrp binary ninjaのWARPフォーマット用ネイティブradare2プラグイン
使用方法
これらはr2を使用するための最初のステップです。詳細については書籍を読むかチュートリアルを見つけてください
$ r2 /bin/ls # open file in read-only
> aaa # analyse the program (r2 -A)
> afl # list all functions (try aflt, aflm)
> px 32 # print 32 byte hexdump current block
> s sym.main # seek to main (using flag name)
> f~foo # filter flags matching 'foo' (internal |grep)
> iS;is # list sections and symbols (rabin2 -Ss)
> pdf; agf # disassembly and ascii-art function graph
> oo+;w hello # reopen in read-write and write a string
> ?*~... # interactive filter in all command help
> q # quit
多くのプラグインがデフォルトでr2に含まれています。しかし、r2pmパッケージマネージャを使用してその機能を拡張できます。
r2pm -s <word> # search packages matching a word
r2pm -Uci <pkg> # update database and clean install a package
r2pm -u <pkg> # uninstall the given package
r2pm -l <pkg> # list installed packages
リソース
- 公式書籍: r2の使用方法について読む
- COMMUNITY.md: コミュニティの関与と緩やかなガイドライン
- CONTRIBUTING.md: 問題の報告と貢献に関する情報。貢献も参照してください
- DEVELOPERS.md: r2の開発ガイドライン
- SECURITY.md: 脆弱性を報告するための手順
- USAGE.md: いくつかのコマンド例
- INSTALL.md: makeまたはmesonを使用したインストール手順
ドキュメント
r2conからのyoutubeトークを見てr2についてもっと学びましょう。多くのブログ投稿、スライドデッキ、公式radare2書籍もありますが、公式チャットのいずれかに参加して質問やフィードバックをそこに投稿するのは常に良いアイデアです。
コミュニティ
- ウェブサイト: https://www.radare.org/
- Discord: サーバー
- Mastodon: @radareorg
- Telegram: メインとサイドチャンネル
- irc.libera.chat:
#radare,#radare_side - Matrix:
#radare:matrix.org
サポートされているプラットフォーム
オペレーティングシステム
Windows(x86/x64/arm64用のXP以降)、Linux、Darwin、GNU/Hurd、Appleの{Mac,i,iPad,watch}OS、 Android、Wasmer、[Dragonfly, Net, Free, Open] BSD、Z/OS、QNX、SerenityOS、Solaris、AIX、 Haiku、Vinix、FirefoxOS。
アーキテクチャ
i386, x86-64, Alpha, ARM, AVR, BPF, sBPF, MIPS, PowerPC, SPARC, RISC-V, SH, m68k, S390, XCore, CR16, HPPA, ARC, Blackfin, Z80, H8/300, V810, PDP11, m680x, V850, CRIS, XAP (CSR), PIC, LM32, 8051, 6502, i4004, i8080, Propeller, EVM, OR1K Tricore, CHIP-8, LH5801, T8200, GameBoy, SNES, SPC700, MSP430, Xtensa, xcore, NIOS II, Java, Dalvik, Pickle, WebAssembly, MSIL, EBC, TMS320 (c54x, c55x, c55+, c64x), Hexagon, Brainfuck, Malbolge, whitespace, DCPU16, LANAI, lm32, MSIL, InfernoDis, UXN, Cosmac, PythonBytecode, Sharp sm5xx MCPus, FreeScale QIQa, MCORE, mcs96, RSP, SuperH-4, VAX, KVX, Am29000, LOONGARCH, JDH8, s390x, STM8。

