ARM 架构

ARM有16个通用寄存器, R0-R15, 5个用于特殊目的, R11(帧指针, FP), R12(过程内寄存器, IP), R13(栈指针, SP), R14(链接寄存器, LR), R15(程序计数器, PC)

其中SP是保存指向堆栈顶部的指针的寄存器 , LR是当程序进入子过程时存储返回地址 , PC是存储要执行的下一条指令 (因为流水线的原因, PC将总是指向要执行的指令而非下一条)

ARM有两种基本指令模式, Thumb模式下, 大部分指令是16位, ARM模式下, 指令全是32位, 但是还有一种混合模式 Thumb-2, 这是Thumb与ARM模式的混合, 执行模式由 CPSR 寄存器中的状态决定

大多数基于ARM平台的设备中,内存中的区域是不可执行的, 这将阻止我们放置并执行shellcode, 为了实现shellcode类似的需要使用导向式编程(ROP), 它是来自内存不同部分的指令片段的简单链接

猜你喜欢

转载自www.cnblogs.com/seliote/p/9313525.html