持续更新中...
0x0 废话
做个背景介绍。
- 两种指令集:
- RISC指令集:精简指令集(Reduced Instruction Set Computer)。
- CISC指令集:复杂指令集(Complex Instruction Set Computer)。
- 目前几种主流的芯片架构:
- X86架构。采用CISC指令集。intel和AMD搞出来的py架构,面向家用、商用领域,性能好、兼容性佳。X86-64是扩展的64位指令集(由AMD率先搞出来的,那边叫ADM64)。
- ARM架构。精简指令集,广泛应用于嵌入式系统。面向移动、低功耗领域,突出一个省电。
- MIPS架构。精简指令集,应用于电子产品、网络设备、个人娱乐装置与商业装置。有32/64位架构。
- RISC-V架构。精简指令集,比较新,智能穿戴啥的有市场。
0x1 实验平台
windows-x64下的Ubuntu-18虚拟机。注意,x86架构下的vmware不支持构造arm架构的虚拟机。
0x2 基本环境
在ubuntu18虚拟机下进行环境搭建。
qemu:
sudo apt install -y qemu
#如果显示缺少依赖,使用以下命令:
sudo apt install -f
sudo apt install -y qemu
ARM交叉编译器:
sudo apt-get install gcc-arm-linux-gnueabi
#验证安装结果
dpkg -l gcc-arm-linux-gnueabi
gcc基本命令:(可以作为gcc-arm-linux-gnueabi的参考)
# https://blog.51cto.com/u_15169172/2710502
0x3 实践
编译出来ARM程序。(静态程序)
arm-linux-gnueabi-gcc hello.c -static -o ao
模拟执行:
qume-arm ./ao