【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )

简介: 【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )

文章目录

一、ARM 处理器工作模式

二、ARM 架构模型





一、ARM 处理器工作模式


参考 【嵌入式开发】ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存器 CPSR SPSR | 模式设置代码编写 | 设置 svc 模式 ) 博客 , ARM 处理器有 7 77 种工作模式 ;


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 架构中寄存器数量很多 , 有 16 1616 个 ;


另外多了 标志寄存器 CPSR , 程序状态寄存器 SPSR ;


程序状态寄存器 SPSR 在中断模式下使用 ;



R0 ~ R3 这 4 44 个寄存器是参数寄存器 ;


x86 架构中 , 参数传递都是通过堆栈传递的 ;


ARM 架构中 , 如果参数小于 4 44 个参数 , 传输传递是通过寄存器传递的 , 如果大于等于 4 44 个参数 , 则 R3 寄存器记录一个栈地址 , 对应的栈中就后续参数值 ;



R4 ~ R12 这 8 88 个寄存器是变量寄存器 ,

image.png



ARM 中有 37 3737 个寄存器 , R0 ~ R7 是所有模式通用的寄存器 ;


上述 7 77 种模式下 , 寄存器的的个数与种类都是不同的 ;


每个模式对应的寄存器参考 :

image.png



如果不做嵌入式开发 , 用户模式 和 系统模式 是主要需要学习的模式 , Android 逆向中 , 主要涉及这两个模式 ;



R13 ( SP ) 是堆栈指针寄存器 ;


R14 ( LR ) 是返回地址寄存器 ;


R15 ( PC ) 是指令寄存器 , 指向下一条要执行的指令 ;



Android 逆向中使用到的寄存器有


参数寄存器 R0 ~ R3

变量寄存器 R4 ~ R12

堆栈指针寄存器 R13 ( SP )

返回地址寄存器 R14 ( LR )

指令寄存器 R15 ( PC )

标志寄存器 CPSR


目录
相关文章
|
6月前
|
编解码 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)1
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
338 1
|
5月前
|
缓存 C语言 计算机视觉
程序与技术分享:CPU0处理器的架构及应用
程序与技术分享:CPU0处理器的架构及应用
|
6月前
|
编解码 开发工具 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
384 2
|
3月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
83 0
|
4月前
|
机器学习/深度学习 人工智能 并行计算
GPU 和 CPU 处理器的架构
CPU(中央处理器)和 GPU(图形处理单元)是计算机系统中最重要的两种处理器。它们各自的架构设计和技术体系决定了其在不同应用领域中的性能和效率。
145 1
|
6月前
|
存储 人工智能 达摩院
FunASR 语音大模型在 Arm Neoverse 平台上的优化实践
Arm 架构的服务器通常具备低功耗的特性,能带来更优异的能效比。相比于传统的 x86 架构服务器,Arm 服务器在相同功耗下能够提供更高的性能。这对于大模型推理任务来说尤为重要,因为大模型通常需要大量的计算资源,而能效比高的 Arm 架构服务器可以提供更好的性能和效率。
|
6月前
|
测试技术 PyTorch 算法框架/工具
魔搭开源推理引擎 DashInfer,助力CPU服务器解锁大模型超强推理
ModelScope推出了预训练大语言模型(LLM)推理引擎DashInfer,采用C++ Runtime编写,提供C++和Python语言接口,具有生产级别的高性能表现,适用于多种CPU架构,包括x86和ARMv9。DashInfer支持连续批处理(Continuous Batching)和多NUMA推理(NUMA-Aware),能够充分利用服务器级CPU的算力,为推理14B及以下的LLM模型提供更多的硬件选择。该项工作已开源。
|
5月前
|
物联网
arm架构和x86架构区别
arm架构和x86架构区别
|
6月前
|
安全 API 数据库
【转】Android线程模型(AsyncTask的使用)
【转】Android线程模型(AsyncTask的使用)
41 1