포너블 문제를 풀다보면 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

wget https://people.debian.org/~aurel32/qemu/armhf/initrd.img-3.2.0-4-vexpress
wget https://people.debian.org/~aurel32/qemu/armhf/debian_wheezy_armhf_standard.qcow2

이제 다음 명령어를 쳐준다

마지막에 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


여기까지
armhf셋팅 방법 이었다!






********************
처음부터 끝까지 
잘정리된 문서
https://www.ece.cmu.edu/~ee349/f-2012/lab2/qemu.pdf


'시스템 > 시스템 해킹' 카테고리의 다른 글

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

+ Recent posts