Tips & theory

arm 동적 디버깅

wyv3rn 2025. 5. 1. 17:22
728x90
반응형

서론

오랜만에 들이대면 까먹기 때문에 써놓음.

본론

사용 프로그램 설치

sudo apt-get install qemu-user-static
sudo apt-get install gdb-multiarch

qemu-user-static은 바이너리 실행용

gdb-multiarch는 디버깅용.

 

바이너리 실행

설치 후 바이너리의 운영체제에 맞게 아래와 같이 실행 가능.

qemu-????-static ./prob

종류는 자동완성 기능을 사용해보면 쉽게 찾을 수 있음. (qemu- 까지 치고 탭 두번)

qemu-aarch64-static       qemu-armel-static         qemu-loong64-static       qemu-mips64el-static      qemu-ppc-static           qemu-sh4-static           qemu-xtensaeb-static
qemu-aarch64_be-static    qemu-armhf-static         qemu-loongarch64-static   qemu-mipsel-static        qemu-ppc64-static         qemu-sh4eb-static
qemu-alpha-static         qemu-cris-static          qemu-m68k-static          qemu-mipsn32-static       qemu-ppc64el-static       qemu-sparc-static
qemu-amd64-static         qemu-debootstrap          qemu-microblaze-static    qemu-mipsn32el-static     qemu-ppc64le-static       qemu-sparc32plus-static
qemu-arm-static           qemu-hexagon-static       qemu-microblazeel-static  qemu-nios2-static         qemu-riscv32-static       qemu-sparc64-static
qemu-arm64-static         qemu-hppa-static          qemu-mips-static          qemu-or1k-static          qemu-riscv64-static       qemu-x86_64-static
qemu-armeb-static         qemu-i386-static          qemu-mips64-static        qemu-powerpc-static       qemu-s390x-static         qemu-xtensa-static

 

동적 디버깅

바이너리 실행과 함께 포트를 열어 대기시킴.

➜  qemu-arm64-static -g 1234 ./prob

이후 gdb-multiarch를 실행하고, gdb 내에서 remote로 접속

➜  ~ gdb-multiarch
gef➤  target remote localhost:1234

이후 하던대로 디버깅 하면 된다.

 

PWNTOOLS와 함께.

아래와 같이 바이너리를 실행하면 됨.

io = process(['qemu-arm64-static','-g','1234','./prob'])
728x90
반응형