Debugger/radare2

A journey into Radare 2 – Part 2: Exploitation (미완료)

우와해커 2020. 1. 2. 10:49

* 실습 바이너리 파일이 ELF 즉, 리눅스 파일이며 디버그 모드를 실행해야하기 때문에
  윈도우에서는 실습이 불가능하다. 리눅스에서 다시해보는걸로!! ㅠ


Our binary this time is quite similar to the one from the previous post with a few slight changes to the main() function:

•Compiled without -z execstac to enable NX bit
•Receives user input with scanf and not from program’s arguments
•Uses mostly puts to print to screen
•Little changes to the program’s output


rabin2를 사용해 바이너리 정보확인
rabin2 - I megabeets_0x02


NX에 의해 스택에 올라간 코드를 실행 할 수 없지만 canary와 pic 그리고 relro 기법에 의한 보호는 적용되어 있지 않은 바이너리다.
arch x86
...
canary false
nx true
...
pic false
relro partial


디버거 모드로 바이너리를 열어보자 옵션: [-d]
$ radare2 -d megabeets_0x2
fork_and_ptraceme/CreateProcess: %1w32_dbg_maps/w32_OpenProcess: [w] Cannot open 'dbg://megabeets_0x2' for writing.

나는 윈도우에서 실습하고 있기 때문에 디버그 모드는 실행되지 않는다...바이너리를 오픈하고 디버깅해야 하기 때문이다. ㅠㅠ

따라서, radare2에서 로드 후 분석을 실행했다.

aas는 함수와 심볼 등 그 외에 정보를 분석하는 옵션이다.
옵션: [-aas]

$ radare2 megabeets_0x2
[0x080483d0]> aas


필자가 말하길 aaa로 분석을 시작하는 것을 권고하지 않는 다고한다.
코드의 크기가 커질수록 분석이 느려지고 복자해지기 때문이다.

이에 대한 더 자세한 대답과 관련 명령어는 아래 내용을 참고하자.
https://reverseengineering.stackexchange.com/questions/16112/how-to-make-radare2-work-for-a-large-binary/16115#16115


Now continue the execution process until main is reached. We can easily do this by executing dcu main:

>dcu?를 입력하여 명령어 설명을 보자.
dcu는 stands for debug continue until 의 약자이다.

[0x080483d0]> dcuu?
|Usage: dcu Continue until address
| dcu. Alias for dcu $$ (continue until current address
| dcu address Continue until address
| dcu [..tail] Continue until the range
| dcu [from] [to] Continue until the range
[0x080483d0]>
[0x080483d0]> dcu main
Continue until 0x08048658 using 1 bpsize

역시 디버그를 켜야되기 때문에 윈도우에서는 진행 할 수없다.

여기까지만 진행하고..리눅스에서 다시해보는걸로! ㅠ

'Debugger > radare2' 카테고리의 다른 글

Disassembling_with_radare2  (0) 2020.01.03
Radare2 강의와 치트시트  (0) 2020.01.03
THC2018  (0) 2020.01.02
How to make radare2 work for a large binary?  (0) 2020.01.02
A journey into Radare 2 – Part 1: Simple crackme 번역 및 실습  (0) 2019.12.31