반응형
RADARE2 FRAMEWORK
#설치
# radare2
-UNIX 기반 시스템 환경에서 리버스 엔지니어링에 사용되는 프레임워크, 리버싱과 시스템 해킹을 할때 구분없이 자주 쓰인다.
- 커맨드라인 인터페이스 형식
- Radare2 기능 테스트 : RPISEC의 바이너리 취약점 분석 강좌(CCI 4968 - Modern Binary Exploitation)
- github : https://github.com/RPISEC/MBE
# rabin2
-ELF, PE, Java CLASS, Mach-O와 같은 실행가능한 바이너리에서 정보를 추출하는 프로그램
- symbols과 imports, 파일 정보, cross references(xrefs), 라이브러리 의존성, 섹션 정보 등
# rasm2
-다수의 아키텍처를 지원하는 커맨드라인 어셈블러, 디스어셈블러
- intel x86, x86-64, MIPS, ARM, PowerPC와 Java 지원
-예시 1 : java로 'nop' 명령어를 어셈블
$ rasm2 -a java 'nop'
00
-예시 2 : x86으로 '90'을 디스어셈블
$ rasm2 -a x86 -d '90'
nop
-예시 3 : x86으로 32비트 'mov eax, 33'을 어셈블
$ rasm2 -a x86 -b 32 'mov eax, 33'
b821000000
-예시 4 : 특정 입력으로 인자 받아서 어셈블
$ echo 'push eax;nop;nop' | rasm2 -f -
509090
# rahash2
-블록 기반 해쉬 도구
- 작은 문자열에서 큰 disks까지 다수의 알고리즘 지원 = 아주 큰 파일과 메모리 덤프, 디스크 지원
- MD4, MD5, CRC16, CRC32, SHA1, SHA256, SHA384, SHA512, par, xor, xorpair , mod255 hamdist, entropy 지원
- 무결성 체크 가능
- 바뀐 값 추적 가능
-실행 화면
- 기본 값은 sha256으로 보임
# radiff2
-바이너리 디핑 기능
- 바이트 레벨 디핑
- 델타 디핑
- 코드 분석 디핑
- rsc idc2rdb 스크립트 사용
- IDA 분석 기능에서 가져옴
# ragg2
-r_egg를 위한 프론트 엔드(?)
- ragg2가 프로그램을 컴파일
- x86, x86-64 와 ARM 지원
- .r 파일과 몇몇 high-level 언어를 컴파일 하기 위한 도구로 보여짐
-예시 1 : hi.r 컴파일
$ cat hi.r
/* hello world in r_egg */
write@syscall(4); //x64 write@syscall(1);
exit@syscall(1); //x64 exit@syscall(60);
main@global(128) {
.var0 = "hi!\n";
write(1,.var0, 4);
exit(0);
}
$ ragg2 -O -F hi.r
$ ./hi
hi!
$ cat hi.c
main@global(0,6) {
write(1, "Hello0", 6);
exit(0);
}
$ ragg2 hi.c
$ ./hi.c.bin
Hello
# rarun2
-현재 r2가 설치된 플랫폼의 환경과 다른 환경에서 작동되는 특정 프로그램을 위한 실행 런처
- 다른 인자 가짐
- 다른 권한 가짐
- 다른 디렉토리 가짐
- 덮어써진 기본 파일 디스크립터를 사용 = 기존것에 런처 실행시에 일시적으로 덮어써서 I/O한다는 뜻으로 생각
- rarun2를 쓰면 유용할 때
- crackmes
- Fuzzing
- Test suites
-예시 1 : 스크립트 실행
$ cat foo.rr2
#!/usr/bin/rarun2
program=./pp400
arg0=10
stdin=foo.txt
chdir=/tmp
#chroot=.
./foo.rr2
-예시 2 : Socket을 실행
$ nc -l 9999
$ rarun2 program=/bin/ls connect=localhost:9999
-예시 3 : 다른 터미널로 IO를 리다이렉팅해서 프로그램을 디버깅
- 새로운 터미널 오픈
$ tty ; clear ; sleep 999999
/dev/ttyS010
- 연결
#!/usr/bin/rarun2
program=/bin/ls
stdio=/dev/ttys010
- 실행
r2 -R foo.rr2 -d /bin/ls
# rax2
-쉘상에서 다수의 변환을 지원
- 실수형
- 헥사 변환
- 아스키 변환
- 8진수 -> 10진수
-예시 1 : 10진수를 16진수로
$ rax2 1337
0x539
-예시 2 : 16진수를 10진수로
$ rax2 0x400000
4194304
-예시 3 : 바이너리를 문자로
$ rax2 -b 01111001
y
- 세부적인것은 rax2 --help 명령으로 ..
반응형
'Reversing' 카테고리의 다른 글
Reversing/Tool/gdbgui 설치 (0) | 2018.03.29 |
---|---|
Reversing/Tool/miasm 설치/오픈소스 리버싱 프레임워크 (0) | 2018.03.29 |
RCE/CodeEngn/BasicRCE07 (0) | 2018.02.05 |
RCE/CodeEngn/BasicRCE06 (0) | 2018.02.05 |
RCE/CodeEngn/BasicRCE05 (0) | 2018.02.05 |