Radare2
Radare2 (또는 r2)는 바이너리를 리버스 엔지니어링하고 분석하기 위한 완전한 프레임워크이다. 이것은 같이 사용되거나 명령 줄 인터페이스에서 독립적으로 사용될 수 있는 조그만 유틸리티들의 집합으로 이루어져 있다. 역어셈블러 위주로 만들어진 이것은 여러 프로세서들과 운영 체제들을 위한 다양한 실행 파일 포맷을 지원한다.
개발자 | pancake and the core-contributors |
---|---|
안정화 버전 | 1.0.2[1]
/ 2016년 11월 10일 |
저장소 | |
프로그래밍 언어 | C[2] |
운영 체제 | 마이크로소프트 윈도우, 맥 OS X, 리눅스, BSD, 하이쿠, 안드로이드, iOS, 솔라리스, 미고 |
언어 | 영어 |
종류 | 디스어셈블러 |
라이선스 | LGPL |
상태 | 활성화 |
웹사이트 | radare |
특징과 사용
편집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