Radare2
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Radare2는 2006년에 처음 개발된 자유 소프트웨어로, 바이너리 분석을 위한 프레임워크이다. 초기에는 16진수 편집기로 시작하여, 현재는 다양한 도구와 기능을 갖춘 명령줄 인터페이스(CLI) 기반의 바이너리 분석 도구로 발전했다. 정적 분석 및 동적 분석 기능을 제공하며, 다양한 아키텍처와 파일 형식을 지원하여 소프트웨어 보안 연구 및 취약점 개발에 활용된다.
더 읽어볼만한 페이지
- 역어셈블러 - OllyDbg
OllyDbg는 32비트 디버거로, 리버스 엔지니어링, 소프트웨어 크래킹, 어셈블리 코드 편집, 프로그램 동작 확인, 악성코드 분석 등에 활용되며, 디스어셈블러 부분은 GNU GPL에 따라 자유 소프트웨어로 배포된다. - 역어셈블러 - 인터랙티브 디스어셈블러
인터랙티브 디스어셈블러는 다양한 시스템, 프로세서, 컴파일러를 지원하는 디스어셈블 및 디버깅 도구로, IDC 스크립트를 통한 기능 확장과 다양한 스크립트 언어 및 디버깅 환경을 지원한다. - 디버거 - Valgrind
Valgrind는 동적 분석 도구들의 프레임워크로, 가상 머신 기반으로 작동하며 메모리 오류 감지, 멀티스레드 코드 분석 등 다양한 기능을 제공하지만, 정적 또는 스택 할당 데이터의 경계 오류는 모두 감지하지 못한다. - 디버거 - Eclipse (소프트웨어)
이클립스는 IBM에서 개발한 자바 기반의 통합 개발 환경으로, OSGi 서비스 플랫폼을 런타임 아키텍처로 사용하며, 플러그인을 통해 기능을 확장할 수 있고, 이클립스 퍼블릭 라이선스를 따르며, 한국어를 지원한다. - LGPL 라이선스 소프트웨어 - Qt (소프트웨어)
Qt는 C++로 작성된 크로스 플랫폼 애플리케이션 개발 프레임워크로, GUI, 멀티미디어, 네트워크 등 다양한 기능을 제공하며, 시그널과 슬롯 메커니즘과 Qt Creator 등의 개발 도구를 통해 데스크톱, 임베디드, 모바일 UI 개발에 널리 사용된다. - LGPL 라이선스 소프트웨어 - GTK
GTK는 GIMP를 위해 개발된 크로스 플랫폼 GUI 툴킷으로, 다양한 운영체제와 프로그래밍 언어를 지원하며 여러 데스크톱 환경 및 애플리케이션에서 활용된다.
Radare2 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
![]() | |
장르 | 디스어셈블러 |
개발 | |
저자 | 세르지 알바레스 (pancake) |
개발자 | pancake 및 커뮤니티 |
프로그래밍 언어 | C |
출시 | |
기타 정보 | |
운영체제 | 리눅스 BSD macOS 마이크로소프트 윈도우 하이쿠 안드로이드 iOS 솔라리스 |
라이선스 | LGPL |
웹사이트 | radare.org |
2. 역사
Radare2는 2006년 2월에 만들어졌으며,[2] 자유 소프트웨어이자 64비트 오프셋을 지원하는 간단한 명령줄 인터페이스를 제공하여 하드 디스크 드라이브에서 데이터를 검색 및 복구하고, 육각 편집기를 사용하여 포렌식 목적으로 사용하도록 설계되었다. 이후 프로젝트는 성장했으며, 유닉스 철학의 여러 원칙을 준수하면서 바이너리 분석을 위한 완벽한 프레임워크를 제공하는 것으로 목표가 변경되었다.[3]
Radare2는 명령줄 인터페이스(CLI)를 사용하므로 학습 곡선이 가파르다. 원래 16진수 편집기를 중심으로 개발되었지만, 현재는 다양한 도구와 기능을 갖추고 있으며 여러 프로그래밍 언어에 대한 바인딩도 제공한다.[9] 웹UI[10]도 제공되며, Radare2의 공식 GUI 프로젝트는 Iaito[11]라고 한다.
2009년에는 초기 디자인의 제약 사항을 해결하기 위해 완전히 다시 작성하기로 결정했다. 그 이후로 프로젝트는 계속 성장했으며,[4] 여러 개발자를 유치했다.
2016년에는 첫 번째 ''r2con''이 바르셀로나에서 열렸으며,[5][6] 100명 이상의 참가자가 모여 프레임워크의 다양한 기능 및 개선 사항에 대한 다양한 발표를 진행했다.
3. 특징과 사용
3. 1. 정적 분석
Radare2는 주로 실행 파일을 비롯한 많은 소프트웨어 프로그램을 어셈블하고 디스어셈블할 수 있으며, 그래프를 이용한 바이너리 비교도 수행할 수 있다.[12] 재배치 심볼과 다양한 유형의 데이터와 같은 정보를 추출할 수 있다. 내부적으로는 Radare2가 추론하거나 사용자가 수동으로 추가할 수 있는 분석 정보를 추적하기 위해 [https://medium.com/@trufae/everything-is-a-string-9d626c98e59f sdb]라는 NoSQL 데이터베이스를 사용한다. 손상된 바이너리도 처리할 수 있으므로 소프트웨어 보안 연구자들이 분석 목적으로 사용하기도 한다.[13][14][15]
3. 2. 동적 분석
Radare2는 GDB보다 저수준의 내장 디버거를 가지고 있다. GDB 및 WineDBG[16]와 연동하여 다른 시스템에서 윈도우 바이너리를 디버깅할 수 있다. VMWare를 사용하여 커널 디버거로도 사용할 수 있으며, WinDbg 프로토콜도 지원한다.[31]
3. 3. 소프트웨어 취약점 공격
Radare2는 디스어셈블러와 저수준 디버거의 특징을 갖추고 있어, 취약점 개발자들에게 유용하게 사용될 수 있다. 이 소프트웨어는 ROP 가젯 검색 엔진과 완화 탐지 같은 취약점 개발을 보조하는 특징을 갖는다. Radare2는 또한 메타스플로이트와 비슷하게, 이것의 'ragg2' 툴을 이용해서 셸코드를 생성하는 것을 도울 수 있다.[17][18][19]
4. 지원되는 아키텍처/포맷
Radare2는 다양한 파일 포맷과 명령어 집합(ISA)을 지원하여 광범위한 분석 환경을 제공한다.
4. 1. 인식 가능한 파일 포맷
- COFF 계열, Win32/64 및 일반 PE을 포함한다.[32]
- ELF 계열
- Mach-O (Mach) 계열
- 게임보이 및 게임보이 어드밴스 카트리지
- MZ (MS-DOS)
- Java class
- dyld 캐시 덤프[32]
- Dex (달빅 실행 파일)
- Xbox xbe 포맷[33]
- 플랜9 바이너리
- Winrar 가상 머신[34]
- 파일 시스템 (ext, ReiserFS, HFS+, NTFS, FAT 등)
- 추가적인 디버그 정보를 저장하기 위한 DWARF와 PDB 파일 포맷
- Raw 바이너리
4. 2. 명령어 집합
명령어 집합 |
---|
인텔 x86 계열 |
ARM 아키텍처 |
Atmel AVR 시리즈 |
브레인퍽 |
Motorola 68k 및 H8 |
Ricoh 5A22 |
MOS 6502 |
스마트카드 PSOS 가상 머신 |
자바 가상 머신 |
MIPS: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l |
PowerPC |
SPARC 계열 |
TMS320Cxxx 시리즈 |
Argonaut RISC Core |
인텔 51 시리즈: 8051/80251b/80251s/80930b/80930s |
Zilog Z80 |
CR16 |
Cambridge Silicon Radio (CSR) |
AndroidVM Dalvik |
DCPU-16 |
EFI 바이트 코드 |
게임보이 (z80 유사) |
자바 바이트코드 |
Malbolge |
MSIL/CIL |
Nios II |
SuperH |
Spc700 |
Systemz |
TMS320 |
Whitespace |
XCore |
참조
[1]
웹사이트
radareorg/radare2
https://github.com/r[...]
2024-01-18
[2]
웹사이트
Radare demystified
CCC
2016-12-29
[3]
웹사이트
I have written more than 300.000 code lines for Radare
http://www.cigtr.inf[...]
2017-01-21
[4]
간행물
radare demystified
https://media.ccc.de[...]
2016-12-29
[5]
웹사이트
r2con 2016
https://www.nccgroup[...]
2017-01-21
[6]
뉴스
The hacker behind open-source, reverse-engineering tool Radare...
https://www.nowsecur[...]
2017-01-21
[7]
웹사이트
Recon 2015 Schedule
https://recon.cx/201[...]
2017-01-21
[8]
뉴스
Talks at Hack.lu 2015
http://2015.hack.lu/[...]
2017-01-21
[9]
웹사이트
radareorg/radare2-bindings
https://github.com/r[...]
2023-12-12
[10]
웹사이트
The new web interface
http://radare.today/[...]
[11]
웹사이트
iaito
https://rada.re/n/ia[...]
2021-08-14
[12]
웹사이트
"Binary Diffing\" visual en Linux con Radare2"
https://cybersecurit[...]
[13]
웹사이트
OSX/Leverage.a Analysis
https://cybersecurit[...]
2024-05-18
[14]
웹사이트
None
http://www.devttys0.[...]
[15]
문서
PHDays IV, May 21, 2014, 'Anton Kochkov', Application of radare2 illustrated by Shylock/Caphaw.D and Snakso.A analysis
[16]
웹사이트
Gmane archive about WinDBG support in radare2
https://blog.dragons[...]
[17]
웹사이트
Plaid CTF 2014 - Tiffany writeup
https://blog.dragons[...]
[18]
웹사이트
DEFCON2K12 Prequals: pwn300 writeup
http://blog.lse.epit[...]
2012-06-04
[19]
웹사이트
manual binary mangling with radare
http://phrack.org/is[...]
[20]
웹사이트
Announcing Rizin
https://rizin.re/pos[...]
2020-12-08
[21]
웹사이트
dyld_shared_cache - iPhone Development Wiki
https://iphonedev.wi[...]
[22]
웹사이트
.XBE File Format
https://www.caustik.[...]
[23]
웹사이트
Fun with Constrained Programming
https://blog.cmpxchg[...]
[24]
문서
공식 웹사이트
http://rada.re
[25]
문서
Git repository
https://github.com/r[...]
[26]
문서
Git repository for radare2's bindings
https://github.com/r[...]
[27]
문서
"Binary Diffing\" visual en Linux con Radare2"
http://chatsubo-labs[...]
[28]
웹인용
AlienVault - OSX/Leverage.a Analysis
http://www.alienvaul[...]
2016-01-21
[29]
웹인용
Craig Heffner - Finding and Reversing Backdoors in Consumer Firmware
http://www.devttys0.[...]
2016-01-21
[30]
문서
PHDays IV, May 21, 2014, 'Anton Kochkov', Application of radare2 illustrated by Shylock/Caphaw.
[31]
웹인용
Gmane archive about WinDBG support in radare2
http://comments.gman[...]
2016-01-21
[32]
웹인용
Dydl cache - iphonedevwiki.net
http://iphonedevwiki[...]
2016-01-21
[33]
웹인용
.
http://www.caustik.c[...]
2016-01-21
[34]
문서
Tavis Ormandy - Fun with Constrained Programming
http://blog.cmpxchg8[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com