ROP gadget 찾기 (gdb-peda, rp++)
2018. 5. 26. 17:26
ROP gadget을 좀 더 효율적으로 찾기위해서 툴을 사용하는게 좋다.
기존에는 아래와 같이 objdump와 grep을 이용해 찾아 사용했었다.
1 | objdump -d echo1 | grep 'pop' -A2 --color=auto | cs |
그런데 이렇게 찾는것도 한계가 있고, 잘 못찾아주는 경우가 많다.
여기서 gdb-peda에 보면 ropsearch와 ropgadget이란 기능이 있는데, 바이너리에서 gadget찾기가 용이하다.
(참고로 바이너리가 실행된 상태(run)에서만 찾는 것이 가능하다.)
ropgadget을 사용하면 자주 사용하는 유용한 gadget들을 한번에 찾아준다.
ropsearch는 지정된 gadget을 찾아주는 것인데, 이를 사용하려면 NASM을 설치해야한다.
NASM을 설치하면 위와 같이 사용가능하다. "pop ?"로 search하면 아래와 같이 주소값과 함께 출력된다.
그런데 이것도 단점이 있는것이.. libc 등에서 gadget offset을 찾으려고 gdb-peda로 실행해서 rop명령어를 쓰면
실행이 안되서 못찾는다 ㅡㅡ;;
이때는 rp++를 쓰자. https://github.com/0vercl0k/rp
'Pwnable!!' 카테고리의 다른 글
매직 가젯, 원샷 가젯 (64bit O / 32bit eax라면 O/ rax X) (0) | 2018.05.28 |
---|---|
call instruction (0) | 2018.05.27 |
linux에서 lib64의 base address 확인 및 팁 (0) | 2018.05.24 |
64bit ROP & 64bit BOF (0) | 2018.05.24 |
Pwntool gdb attach 및 debug모드 + LD_PRELOAD (0) | 2018.05.23 |