포너블 문제를 풀다보면 arm 환경의 문제가 나오기도 한다.
arm문제를 풀기위해 또는 연습할떄 arm 환경을 셋팅을 해놓으면 테스트에 좋다.
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=37386
https://github.com/dhruvvyas90/qemu-rpi-kernel
ftp://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/2013-02-09-wheezy-raspbian/
처음에 좀 헤매서 물어보니 이 세 문서를 참고하면 된다고 조언을 받았는데
첫번째 공식 문서만 봐도 된다.
위는 라즈베리파이를 셋팅하는 방법이고
나는 armhf를 셋팅했다. 바이너리를 ldd명령어로 돌려보면 어떤 라이브러리를 사용하는지 나오는데 처음에 armel을 썼다가
라이브러리가 없어서 armhf로 셋팅했다 둘의 차이점은 실수연산을 하는 방법의 차이라고 한다.
https://forums.kali.org/showthread.php?18875-difference-between-armhf-and-armel
방법은
apt-get install qemu-system qemu
설치를 하고
부트로더 역할인 initrd와
커널을 받아줘야한다
wget https://people.debian.org/~aurel32/qemu/armhf/vmlinuz-3.2.0-4-vexpress
이제 다음 명령어를 쳐준다
마지막에 tcp:2222:6492는
호스트의 2222포트를 qemu의 6292포트로 연결시킨다는 뜻이다
그러니까 qemu에서 6292포트를 열고
호스트에서 2222로 접속하면 qemu 6292로 접속이 된다는 것
qemu-system-arm -M vexpress-a9 -kernel vmlinuz-3.2.0-4-vexpress -initrd initrd.img-3.2.0-4-vexpress -drive if=sd,file=debian_wheezy_armhf_standard.qcow2 -append "root=/dev/mmcblk0p2" -redir tcp:2222::6492
'시스템 > 시스템 해킹' 카테고리의 다른 글
arm 문법 블로그, 자료, arm ROP (0) | 2016.12.10 |
---|---|
(문서)SROP-null0 (0) | 2016.12.09 |
integer overflow (0) | 2016.12.09 |
use after free (0) | 2016.11.25 |
gdb peda 설치방법 (0) | 2016.11.21 |