이제 슬슬 arm 아키텍쳐에서의 exploit을 해보고 싶다.
내 서버가 arm을 지원 안하는 관계로, qemu 를 설치해 보겠다!
sudo apt-get install qemu-system
로 qemu 를 설치하자. qemu-system-arm 하면 arm 만 설치 할 수 있다고 하는데 추후 mips 도 해볼까 해서 나는 다 설치했다.
그 후 https://people.debian.org/~aurel32/qemu/armel/ 여기서 원하는 버전을 받으라는데 나는 내가 보고 따라한
debian_wheezy_armel_standard.qcow2 로 받았다.
버전을 정했으면
wget https://people.debian.org/~aurel32/qemu/armhf/debian_wheezy_armhf_standard.qcow2
wget https://people.debian.org/~aurel32/qemu/armhf/initrd.img-3.2.0-4-vexpress
wget https://people.debian.org/~aurel32/qemu/armhf/vmlinuz-3.2.0-4-vexpress
로 3개다 받아주자.
맨위에건 디스크 이미지, 중간껀, 부팅시 필요한 임시이미지, 마지막은 리눅스 커널 이미지 라고 한다.
다 받았으면
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 console=ttyAMA0" \ -redir tcp:10022::22 -redir tcp:10080::80\ -nographic
다음명령어로 실행시켜주면 끝이다.
이런식으로 막 로딩되는데 다 되면 root 로 로그인 해주면 끝이다. ( 초기 비밀번호는 root 다. )
이렇게 qemu 환경을 마련했다.
이제 arm 컴파일 환경 마련이다.
sudo apt-get install gcc-arm-linux-gnueabi
를 qemu 가 아닌 주로 사용하는 리눅스 에서 해주자. 이게 뭐냐면 arm 으로 gcc 컴파일이 가능하게 해주는 애다.
이걸 깔고
arm-linux-gnueabi-gcc -static -march=armv7 -ggdb -o [ ELF NAME ] [ SOUCE NAME ]
식으로 컴파일 하면 데는데..... 내서버 cpu 자체가 arm 을 지원을 안해서 나는 안된다... 그래서 다음방법
wget http://forum.falinux.com/_bankimages/_data_toolchain/arm-toolchain-3.4.3.tar.gz
으로 받아서 압축 풀고 나오는 usr/bin 안에 arm-linux-gcc 으로 컴파일 하니까 잘된다. 이때 컴파일 옵션으로 -staic 은 꼭 넣자. 안그럼 에러뜨더라.
이렇게 Qemu 랑 Arm 환경 구축을 했당. 단순한 arm 실행이면 qemu-arm 으로 실행하면 되는데 익스라던가 못해보니까 qemu-system-arm 도 같이 하게 되었다.
' Daily life' 카테고리의 다른 글
ㅁㄴㅇㄹ (0) | 2018.01.18 |
---|---|
중간 목표 달성 (0) | 2018.01.15 |
2017 (0) | 2017.12.30 |
올해 목표 달성 (0) | 2017.12.20 |
alphanumeric shellcode (0) | 2017.12.19 |