pwnable/arm

arm 디버깅 환경 구축

범고래_1 2018. 9. 11. 14:45

일단 설치

sudo apt-get install gdb-multiarch 
sudo apt-get install qemu-user-static   
sudo apt-get install gcc-arm-linux-gnueabi

 

그다음에 armlib이라는 폴더 생성 후 qemu와 lib을 모두 넣는다.

 

mkidr armlib 

 

cp -r /usr/arm-linux-gnueabi armlib

cd armlib

 

ld와 libc 추가

ln -s /usr/arm-linux-gnueabi/lib/ld-linux.so.3 /lib
ln -s /usr/arm-linux-gnueabi/lib/libc.so.6 /lib

 

이 상태에서 실행 및 디버깅 한다.

 

chroot . ./qemu-arm-static -g [port] ./[binary]

 

--------------------------------------

 

pwntools 익스중에 디버깅

p = process(['qemu-arm-static','-L', 'armlib', '-g', '1234', './ch46'])

 

pause()

 

터미널 하나 더 열어서

 

gdb-multiarch

 

target remote localhost:1234

 

-----------------------

 

chroot 안 쓰고 하기

qemu-arm-static -L armlib ch45

 

-L 옵션 주면 LD path 설정할 수 있다.