리버싱/기타

arm, powerpc, mips Cross Compile, Execute and Remote Debugging

즉흥 2016. 10. 23. 15:59
728x90
반응형

1. gcc 설치

 

1
2
3
sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install gcc-powerpc-linux-gnu
sudo apt-get install gcc-mips-linux-gnu
cs

 

1
2
3
4
5
6
7
8
9
10
sudo apt-get install -y  gcc-multilib-arm-linux-gnueabi
sudo apt-get install -y  gcc-multilib-arm-linux-gnueabihf
sudo apt-get install -y  gcc-multilib-mips-linux-gnu
sudo apt-get install -y  gcc-multilib-mips64-linux-gnuabi64
sudo apt-get install -y  gcc-multilib-mips64el-linux-gnuabi64
sudo apt-get install -y  gcc-multilib-mipsel-linux-gnu
sudo apt-get install -y  gcc-multilib-powerpc-linux-gnu
sudo apt-get install -y  gcc-multilib-powerpc64-linux-gnu
sudo apt-get install -y  gcc-multilib-s390x-linux-gnu
sudo apt-get install -y  gcc-multilib-sparc64-linux-gnu
cs

 

 

1
sudo apt-get install -y  gcc-multilib-arm-linux-gnueabi gcc-multilib-arm-linux-gnueabihf gcc-multilib-mips-linux-gnu gcc-multilib-mips64-linux-gnuabi64 gcc-multilib-mips64el-linux-gnuabi64 gcc-multilib-mipsel-linux-gnu gcc-multilib-powerpc-linux-gnu gcc-multilib-powerpc64-linux-gnu gcc-multilib-s390x-linux-gnu gcc-multilib-sparc64-linux-gnu
cs

 

 

크로스 컴파일을 위한 gcc 설치

 

*g++이 필요할 수도 있다. gcc를 g++로 바꾸어서 apt-get install하면 됨.

 

 

2. 컴파일

 

1
2
3
arm-linux-gnueabi-gcc -o a a.c
powerpc-linux-gnu-gcc -o a a.c
mips-linux-gnu-gcc -o a a.c
cs

 

각 플랫폼에 맞추어 c 코드를 컴파일

 

 

 

 

 

3. 실행

 

 

1
2
sudo apt-get install gdb-multiarch
sudo apt-get install qemu-user-static
cs

1
2
3
qemu-arm-static -L /usr/arm-linux-gnueabi ./a
qemu-ppc-static -L /usr/powerpc-linux-gnu/ ./a
qemu-mips-static -L /usr/mips-linux-gnu/ ./a



cs
 
QEMU 설치 및 실행파일 실행
 
 
 

4. 디버깅

 
실행파일을 실행할 때에 -g 옵션과 포트 번호를 써주면 원격 디버깅이 가능하다!!
 
1
2
3
qemu-arm-static -L /usr/arm-linux-gnueabi -g 5021 ./a
qemu-ppc-static -L /usr/powerpc-linux-gnu/ -g 5021 ./a
qemu-mips-static -L /usr/mips-linux-gnu/ -g 5021 ./a
cs

 

 

 

 

5. 기타 및 참고

 

https://github.com/multiarch/qemu-user-static/releases/

 

 

http://amgn.tistory.com/639

 

.

 

6. 64bit ARM

 

sudo apt install gcc-aarch64-linux-gnu
aarch64-linux-gnu-gcc -o a a.c
qemu-aarch64 -L /usr/aarch64-linux-gnu -g 5021 ./a

 

 

728x90
반응형