qmeu로 ubuntu에 에뮬레이팅을 통해서 시스템 구축을 했다.

일단

https://people.debian.org/~aurel32/qemu/ 

에서 image와 해당 커널을 받을 수 있다.


나는 MIPSEL wheezy계열 이미지를 받고 32비트용 커널을 받았다.

해당 사이트에 아래쪽에 설정하는 법이 잘 설명 되어 있으니 쉽게 설정 할 수 있다.

그 다음에 할 있은 MIPS용 qemu를 받는것인데, 

apt-get install qemu-system-mips

을 입력하면 시스템에 mips용 qemu가 설치된다.


그다음 매번 이미지와 커널을 인자로 주고 qemu를 설정 시키면 귀찮으니, 스크립트를 통해 실행시킬 수 있도록 만들어 준다.


root@ubuntu:~/MIPS# cat > MIPSEL-qemu 

#!/bin/sh

qemu-system-mipsel -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1 console=tty0" -redir tcp:4444::22 -nographic


복잡한 명령어는 해당 repo의 설명에서 그대로 가져다 썻고, 내가 추가 해준 부분은, 파일 업/다운로드와 ssh를 위한 포트 설정이다. -redir tcp:4444::22 으로 설정했으며, 해당 qemu를 실행시킨 운영체제의 4444포트를 22포트로 포워딩 시켜준다고 생각하면 된다.

 -nographic 은 렉 때문에 추가 시켜 준 듯 하다(이건 그냥 해주란다, 자세한 이유는 듯지 못햇다)


그럼 이제 본격적인 디버깅을 위한 환경구축에 들어가 보자.




먼저 apt-get update를 통해서 repo 데이터를 최신으로 만든다.  (안할시 apt-get안먹힘)

그 다음 각종 유틸을 설치한다.

apt-get install gdb 

apt-get install ssh

등등


그리고 그 다음은 파일 업/다운로드에 관한 이야기 인데, 사실 외부와 통신할수 있는 방법이 qemu가 클라이언트가 되서 다른곳에 붙거나 하면 되고, 그게 아니면, 설정해준 22번 포트로 서버를 열면 된다.(sshd와 겹칠수 있으니 서버킬때, 포트를 바꾸거나 아님 sshd내리고 하면된다)


보통 nc를 가지고 파일을 주고 받으면 편하다. rz나 sz는 zmodem포트를 몰라서 패쓰...


그리고 디버깅할때 gdbinit MIPS를 받아서 하면 속도는 좀 느리지만 아주 편하다.



wget https://raw.githubusercontent.com/zcutlip/gdbinit-mips/master/gdbinit-mips





'project > MIPS(EL) 32bit analysis' 카테고리의 다른 글

5. RTL공격  (0) 2015.01.21
4. 쉘코드를 이용한 간단한 BOF공격  (0) 2015.01.19
3. 쉘코드 제작  (0) 2015.01.19
2. 프로그램 분석  (0) 2015.01.19
1. 환경구성  (3) 2015.01.19
Posted by Sanguine