Radare2

Radare2 (또는 r2)는 바이너리를 리버스 엔지니어링하고 분석하기 위한 완전한 프레임워크이다. 이것은 같이 사용되거나 명령 줄 인터페이스에서 독립적으로 사용될 수 있는 조그만 유틸리티들의 집합으로 이루어져 있다. 역어셈블러 위주로 만들어진 이것은 여러 프로세서들과 운영 체제들을 위한 다양한 실행 파일 포맷을 지원한다.

특징과 사용 
Radare2는 그래픽 사용자 인터페이스를 갖지 않기 때문에 배우기 어렵다. 원래 헥사 에디터 위주로 만들어졌지만 지금은 많은 툴들과 특징들을 가지며 또한 여러 언어들을 위한 바인딩도 제공한다.

정적 분석 
Radare2는 많은 것들을 어셈블하고 역어셈블할 수 있으며 또한 그래프를 이용한 바이너리 디핑과 재배치 심볼과 데이터의 여러 다른 타입들 같은 정보를 추출할 수 있다. 내부적으로 이것은 분석 정보를 놓치지 않기 위해 sdb로 불리는 NoSQL 데이터베이스를 사용한다. 이것은 radare2에 의해 추론될 수 있으며 또한 사용자에 의해 직접적으로 추가될 수도 있다. Radare2가 기형적인 바이너리들을 다룰 수 있기 때문에 소프트웨어 보안 연구자들에 의해 분석을 목적으로 사용될 수도 있다.

동적 분석 
Radare2는 빌트인 디버거를 가지는데, 이것은 GDB보다 저수준이다. 그러나 GNU 디버거와 사용될수 있으며 심지어는 윈도우 바이너리를 디버그하기 위해 WineDBG와도 사용될 수 있다. 심지어는 VM웨어와 함께 커널 디버거로서 사용될 수도 있다. 또한 WinDbg 프로토콜을 위한 지원도 존재한다.

소프트웨어 취약점 공격 
radare2가 역어셈블러와 저수준 디버거의 특징을 갖기 때문에, 또한 취약점 개발자들에게 유용하게 사용될 수 있다. 이 소프트웨어는 ROP 가젯 검색 엔진과 완화 탐지 같은 취약점 개발을 보조하는 특징을 갖는다. Radare2는 또한 메타스플로이트와 비슷하게, 이것의 'ragg2' 툴을 이용해서 셸코드를 생성하는 것을 도울 수 있다.

지원되는 아키텍처/포맷 
 인식되는 파일 포맷
 COFF 계열, Win32/64/일반 PE 포함.
 ELF 계열
 Mach-O (Mach) 계열
 게임보이와 게임보이 어드밴스 카트리지
 MZ (MS-DOS)
 Java class
 dyld 캐시 덤프
 Dex (달빅 실행 파일)
 Xbox xbe 포맷
 플랜9 바이너리
 Winrar 가상 머신
 파일 시스템 (ext, ReiserFS, HFS+, NTFS, FAT, ...)
 추가적인 디버그 정보를 저장하기 위한 DWARF와 PDB 파일 포맷
 Raw 바이너리

 명령어
 인텔 x86 계열
 ARM 아키텍처
 Atmel AVR 시리즈
 브레인퍽
 Motorola 68k and H8
 리코 5A22
 MOS 6502
 Smartcard PSOS 가상 머신
 자바 가상 머신
 MIPS: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l
 파워PC
 SPARC 계열
 TMS320Cxxx 시리즈
 Argonaut RISC Core
 Intel 51 시리즈: 8051/80251b/80251s/80930b/80930s
 자일로그 Z80
 CR16
 케임브리지 실리콘 라디오 (CSR)
 안드로이드VM 달빅
 DCPU-16
 EFI bytecode
 게임보이 (z80-like)
 자바 바이트코드
 Malebolge
 MSIL/CIL
 Nios II
 슈퍼H
 SPC700
 Systemz
 TMS320
 V850
 화이트스페이스
 XCore

각주

더 읽어보기 
 
 The r2-book

외부 링크 
 공식 웹사이트
 Radare2's blog
 Git repository

디버거
역어셈블러
C로 작성된 자유 소프트웨어
LGPL 라이선스 소프트웨어
크로스 플랫폼 자유 소프트웨어