Radare2
![]() | |
개발자 | pancake and the core-contributors |
---|---|
안정화 버전 | 1.0.2[1] / 2016년 11월 10일(7년 전)(2016-11-10) |
저장소 |
|
프로그래밍 언어 | C[2] |
운영 체제 | 마이크로소프트 윈도우, 맥 OS X, 리눅스, BSD, 하이쿠, 안드로이드, iOS, 솔라리스, 미고 |
언어 | 영어 |
종류 | 디스어셈블러 |
라이선스 | LGPL |
상태 | 활성화 |
웹사이트 | radare |
Radare2 (또는 r2)는 바이너리를 리버스 엔지니어링하고 분석하기 위한 완전한 프레임워크이다. 이것은 같이 사용되거나 명령 줄 인터페이스에서 독립적으로 사용될 수 있는 조그만 유틸리티들의 집합으로 이루어져 있다. 역어셈블러 위주로 만들어진 이것은 여러 프로세서들과 운영 체제들을 위한 다양한 실행 파일 포맷을 지원한다.
특징과 사용
Radare2는 그래픽 사용자 인터페이스를 갖지 않기 때문에 배우기 어렵다. 원래 헥사 에디터 위주로 만들어졌지만 지금은 많은 툴들과 특징들을 가지며 또한 여러 언어들을 위한 바인딩도 제공한다.[3]
정적 분석
Radare2는 많은 것들을 어셈블하고 역어셈블할 수 있으며 또한 그래프를 이용한 바이너리 디핑과 재배치 심볼과 데이터의 여러 다른 타입들 같은 정보를 추출할 수 있다.[4] 내부적으로 이것은 분석 정보를 놓치지 않기 위해 sdb로 불리는 NoSQL 데이터베이스를 사용한다. 이것은 radare2에 의해 추론될 수 있으며 또한 사용자에 의해 직접적으로 추가될 수도 있다. Radare2가 기형적인 바이너리들을 다룰 수 있기 때문에 소프트웨어 보안 연구자들에 의해 분석을 목적으로 사용될 수도 있다.[5][6][7]
동적 분석
Radare2는 빌트인 디버거를 가지는데, 이것은 GDB보다 저수준이다. 그러나 GNU 디버거와 사용될수 있으며 심지어는 윈도우 바이너리를 디버그하기 위해 WineDBG[8]와도 사용될 수 있다. 심지어는 VM웨어와 함께 커널 디버거로서 사용될 수도 있다. 또한 WinDbg 프로토콜을 위한 지원도 존재한다.
소프트웨어 취약점 공격
radare2가 역어셈블러와 저수준 디버거의 특징을 갖기 때문에, 또한 취약점 개발자들에게 유용하게 사용될 수 있다. 이 소프트웨어는 ROP 가젯 검색 엔진과 완화 탐지 같은 취약점 개발을 보조하는 특징을 갖는다. Radare2는 또한 메타스플로이트와 비슷하게, 이것의 'ragg2' 툴을 이용해서 셸코드를 생성하는 것을 도울 수 있다.
지원되는 아키텍처/포맷
- 인식되는 파일 포맷
- 명령어
- 인텔 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
각주
- ↑ 공식 웹사이트
- ↑ Git repository
- ↑ Git repository for radare2's bindings
- ↑ "Binary Diffing" visual en Linux con Radare2
- ↑ “AlienVault - OSX/Leverage.a Analysis”. 2015년 12월 23일에 원본 문서에서 보존된 문서. 2016년 1월 21일에 확인함.
- ↑ “Craig Heffner - Finding and Reversing Backdoors in Consumer Firmware” (PDF). 2016년 4월 22일에 원본 문서 (PDF)에서 보존된 문서. 2016년 1월 21일에 확인함.
- ↑ PHDays IV, May 21, 2014, 'Anton Kochkov', Application of radare2 illustrated by Shylock/Caphaw.
- ↑ “Gmane archive about WinDBG support in radare2”. 2014년 11월 2일에 원본 문서에서 보존된 문서. 2016년 1월 21일에 확인함.
- ↑ “Dydl cache - iphonedevwiki.net”. 2019년 1월 31일에 원본 문서에서 보존된 문서. 2016년 1월 21일에 확인함.
- ↑ “.”. 2015년 9월 23일에 원본 문서에서 보존된 문서. 2016년 1월 21일에 확인함.
- ↑ Tavis Ormandy - Fun with Constrained Programming
더 읽어보기
- 《The radare book》 (PDF). pancake. 2008. 152쪽. 2015년 7월 23일에 원본 문서 (PDF)에서 보존된 문서. 2016년 1월 21일에 확인함.
- The r2-book
외부 링크
- 공식 웹사이트
- Radare2's blog
- Git repository