ARM 架构
Posted seliote
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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), 它是来自内存不同部分的指令片段的简单链接
以上是关于ARM 架构的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向ARM CPU 架构体系 ( ARM 内存模型 | ARM 架构堆的实现 | ARM 架构栈的实现 )