
UNIX 계열 리버스 엔지니어링 프레임워크 및 명령줄 도구 모음
현재 git master 브랜치는 6.2.0이며, 다음 릴리스는 6.2.1입니다.
r2는 radare의 완전한 재작성입니다. 리버스 엔지니어링 작업을 더 쉽게 해주는 라이브러리, 도구 및 플러그인 세트를 제공합니다. 각 플러그인은 서로 다른 라이선스를 가질 수 있지만(자세한 내용은 r2 -Lj 참조), LGPLv3로 배포됩니다.
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를 실행하면 기본 acr+make+symlink 설치가 진행됩니다.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 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 앱, Apple Dyldcache, Kernelcache, MCLF trustlets, DEX, ART, Java 클래스, Android 부팅 이미지, Plan9 실행 파일, Amiga HUNK, ZIMG, MBN/SBL 부트로더, ELF 코어덤프, MDMP (Windows 미니덤프), 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와 같은 여러 파일 시스템을 마운트합니다.