【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )
文章目录
- 一、ARM 处理器工作模式
- 二、ARM 架构模型
一、ARM 处理器工作模式
参考 【嵌入式开发】ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存器 CPSR SPSR | 模式设置代码编写 | 设置 svc 模式 ) 博客 , ARM 处理器有 777 种工作模式 ;
ARM 处理器的 七种 工作模式 :
- 1.User ( 用户模式 usr ) : 普通的应用运行的模式 ;
- 2.FIQ ( 快速中断模式 fiq ) : 该模式下支持数据的高速传输 ;
- 3.IRQ ( 普通中断模式 irq ) : 该模式常用于处理普通的中断 ;
- 4.Supervisor ( 管理模式 svc ) : 操作系统使用的一种保护模式 , 本节 BootLoader 就是需要设置这种 svc 模式;
- 5.Abort ( 终止模式 abt ) : 实现虚拟内存 和 存储器保护 ;
- 6.Undefined ( 未定义模式 und ) : 硬件协处理器 的 软件仿真支持, 当执行的指令***处理器不支持***, 那么会进入该模式;
- 7.System ( 系统模式 ) : 该模式用于运行具有特权的操作系统任务, ARMv4 以上的架构才有;
二、ARM 架构模型
ARM 架构中寄存器数量很多 , 有 161616 个 ;
另外多了 标志寄存器 CPSR , 程序状态寄存器 SPSR ;
程序状态寄存器 SPSR 在中断模式下使用 ;
R0 ~ R3 这 444 个寄存器是参数寄存器 ;
x86 架构中 , 参数传递都是通过堆栈传递的 ;
ARM 架构中 , 如果参数小于 444 个参数 , 传输传递是通过寄存器传递的 , 如果大于等于 444 个参数 , 则 R3 寄存器记录一个栈地址 , 对应的栈中就后续参数值 ;
R4 ~ R12 这 888 个寄存器是变量寄存器 ,
ARM 中有 373737 个寄存器 , R0 ~ R7 是所有模式通用的寄存器 ;
上述 777 种模式下 , 寄存器的的个数与种类都是不同的 ;
每个模式对应的寄存器参考 :
如果不做嵌入式开发 , 用户模式 和 系统模式 是主要需要学习的模式 , Android 逆向中 , 主要涉及这两个模式 ;
R13 ( SP ) 是堆栈指针寄存器 ;
R14 ( LR ) 是返回地址寄存器 ;
R15 ( PC ) 是指令寄存器 , 指向下一条要执行的指令 ;
Android 逆向中使用到的寄存器有
- 参数寄存器 R0 ~ R3
- 变量寄存器 R4 ~ R12
- 堆栈指针寄存器 R13 ( SP )
- 返回地址寄存器 R14 ( LR )
- 指令寄存器 R15 ( PC )
- 标志寄存器 CPSR
【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )相关推荐
- 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 : -- 三星 ARM Archit ...
- 【嵌入式开发】ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存器 CPSR SPSR | 模式设置代码编写 | 设置 svc 模式 )
一. 处理器工作模式相关介绍 1. 处理器模式简介 (1) 处理器工作模式分类 (2) 处理器不同工作模式区别 (3) Linux 系统运行的模式 (4) 特权模式 说明 (5) 异常模式 (6) 系 ...
- ARM处理器工作模式
一.ARM体系的CPU有以下7种工作模式: 1.用户模式(usr):正常的程序执行状态 2.快速中断模式(fiq):用于支持高速数据传输或通道处理 3.中断模式(irq):用于普通中断处理 4.管理模 ...
- 嵌入式ARM设计编程(三) 处理器工作模式
文章和代码已归档至[Github仓库:hardware-tutorial],需要的朋友们自取.或者公众号[AIShareLab]回复 嵌入式 也可获取. 一.实验目的 (1) 通过实验掌握学会使用ms ...
- 最右android工资,Android逆向之旅—最右App的签名算法解析(ARM指令学习不舍篇)
一.逆向分析 本文继续来看最后一篇介绍ARM指令学习,之前的两篇文章已经详细介绍了ARM指令的基础知识,本文继续把剩下来的所有都介绍完了,首先一定要去看前面的基础篇和进阶篇,不然我都很难保证你看这篇文 ...
- Cortex M3处理器工作模式及中断过程
来自::http://blog.csdn.net/ffgamelife/article/details/6947300 1. 工作模式 线程模式(Thread mode):处理器复位或异常退 ...
- Android逆向之旅--「最右」签名算法解析(ARM指令学习恶心篇)
一.前言 今天开始我们后续会开展三篇左右的arm指令学习,因为之前一直都有同学和我说有没有详细的arm指令分析,这个之前的确一直没有好的样本,有的人可能说可以用自己写的C代码然后反编译so来学习,那样 ...
- 【Android 逆向】Frida 框架 ( Frida 2 种运行模式 | Frida 12.7.5 版本相关工具下载地址 | 在 Android 模拟器上运行 Frida 远程服务程序 )
文章目录 一.Frida 2 种运行模式 二.Frida 12.7.5 版本相关工具下载地址 三.在 Android 模拟器上运行 Frida 远程服务程序 1.启动雷电模拟器 2.上传 frida- ...
- android 5.0.1 libdvm.so,Android逆向进阶—— 脱壳的奥义(基ART模式下的dump)
本文作者:i春秋作家HAI_ZHU 0×00 前言 市面上的资料大多都是基于Dalvik模式的dump,所以这此准备搞一个ART模式下的dump. Dalvik模式是Android 4.4及其以下采用 ...
最新文章
- 查看linux 服务器有多少CPU
- tcpip详解--端口号
- 19、Java Swing JToolBar:工具栏组件
- css背景图根据屏幕大小自动缩放
- Java线程面试题 Top 50
- 关于”算法工程师/机器学习工程师”的笔试和面试总结
- JavaSE——类集(上)(Collection、List、Iterator、forEach)
- JBoss5开发web service常见问题
- arp协议、arp应答出现的原因、arp应答过程、豁免ARP详细解答附图(建议电脑观看)
- java 日期for循环_java for循环的时候增加循环体的长度是不是不太好的?
- 【VS开发】MFC修改Opencv namedWindow的风格
- LAMP让开放源代码软件更安全 PHP是例外
- delphi10.2.1下载地址
- M3U8下载,直播源下载,FLASH下载(二)-ffmpeg安装手册(linux)
- 快播案:程序正义、盗版和色情
- QGIS获取OSM地图矢量数据
- 四阶段课堂总结解决问题
- Prometheus监控kubernetes
- 分组折线图、柱状图实现(多条折线图、柱状图同时显示)实现方式
- C++中unique函数作用及使用条件