
radare2 v6.2.2
UNIX系リバースエンジニアリングフレームワークおよびコマンドラインツールセット
Radare2: Unix ギークのためのリブレリバースエンジニアリングフレームワーク
現在の git master ブランチは 6.2.2 で、次のリリースは 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: r2 ベースの JS で書かれた逆コンパイラ。
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: 問題の報告と貢献に関する情報。Contributing も参照してください。
- 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。
ファイル形式
ELF、Mach-O、Fatmach-O、PE、PE+、MZ、COFF、XCOFF、OMF、TE、XBE、SEP64、BIOS/UEFI、BFLT、Pebble アプリ、 Apple Dyldcache、Kernelcache、MCLF trustlets、DEX、ART、Java クラス、Android ブートイメージ、Plan9 実行ファイル、Amiga HUNK、 ZIMG、MBN/SBL ブートローダ、ELF coredump、MDMP (Windows minidump)、PDP11、XTAC、CGC、DotNet、 WASM (WebAssembly バイナリ)、Commodore VICE エミュレータ、DOL、QNX、WAD、OFF、TIC-80、 GB/GBA、PSX、PRG (C64)、Apple Classic PEF、NDS、z64、および N3DS ...
ファイルシステム
NTFS、FAT、HFS+、EXT、APFS、BeosFS、BFS、MINIX、ReiserFS、SFS、ubifs、ufs、jfs、ISO9660、UDF、xfs などの複数のファイルシステムをユーザーランドでマウントします。

