
UNIX系リバースエンジニアリングフレームワークおよびコマンドラインツールセット
現在の git master ブランチは 6.2.0 で、次のリリースは 6.2.1 です。
r2 は radare を完全に書き直したものです。リバースエンジニアリングの作業を容易にするための一連のライブラリ、ツール、プラグインを提供します。LGPLv3 のもとで配布されていますが、各プラグインは異なるライセンスを持つ場合があります(詳細は r2 -Lj を参照)。
radare プロジェクトは、フォレンジックに焦点を当てたシンプルなコマンドライン 16 進エディタとして始まりました。今日、r2 は組み込みの JavaScript インタプリタまたは r2pipe を介したスクリプティングをサポートする、フル機能の低レベルコマンドラインツールです。
r2 はローカルハードドライブ上のファイルの編集、カーネルメモリの表示、およびローカルまたはリモートの gdb/windbg サーバーを介したプログラムのデバッグが可能です。r2 の幅広いアーキテクチャサポートにより、あらゆるバイナリの解析、エミュレーション、デバッグ、改変、逆アセンブルが可能です。
最新のリリース済みバイナリをダウンロードしてください。
radare2 をインストールする推奨方法は、Git リポジトリのソースから行うことです:
git clone https://github.com/radareorg/radare2
radare2/sys/install.sh
sys/install.sh を実行しますradare2 は dist/nix の下に Nix パッケージを提供しています。
git から、または r2env を使用して pip 経由でインストールできます。make uninstall を実行します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 を使用する多くのプラグインやツールを参照およびインストールできます。
pdd コマンドでアクセスする r2 ベースの逆コンパイラr2 frida://0 で r2 を起動しますpdg でアクセスできるスタンドアロンのネイティブ ghidra 逆コンパイラこれらは 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
r2con の youtube トーク を見て r2 についてさらに学びましょう。ブログ記事やスライドデッキ、公式 radare2 ブック も多数ありますが、公式チャットのいずれかに参加して質問やフィードバックを投稿するのも常に良い考えです。
#radare、#radare_side#radare:matrix.orgWindows(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 apps, Apple Dyldcache, Kernelcache, MCLF trustlets, DEX, ART, Java class, Android boot image, Plan9 executables, Amiga HUNK, ZIMG, MBN/SBL bootloader, ELF coredump, MDMP (Windows minidump), PDP11, XTAC, CGC, DotNet, WASM (WebAssembly binary), Commodore VICE emulator, DOL, QNX, WAD, OFF, TIC-80, GB/GBA, PSX, PRG (C64), Apple Classic PEF, NDS, z64, and N3DS ...
NTFS、FAT、HFS+、EXT、APFS、BeosFS、BFS、MINIX、ReiserFS、SFS、ubifs、ufs、jfs、ISO9660、UDF、xfs などの複数のファイルシステムをユーザーランドでマウントします。