【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


目录
相关文章
|
9月前
|
Android开发
Android护眼模式(argb)
这是一篇关于实现护眼模式的技术文章。通过动态添加一个透明的帧布局(FrameLayout),并设置其不可触碰、不可聚焦,覆盖在应用界面之上。利用 `Color.argb()` 方法设置带有透明度的背景色,提供两种流行护眼色(浅绿和深绿)。开启护眼模式时,为帧布局设置计算好的颜色;关闭时恢复透明。若需全局生效,可在 BaseActivity 中初始化并调用相关方法。此方案简单高效,适合快速集成护眼功能。
380 1
|
机器学习/深度学习 存储
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
790 15
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
|
11月前
|
存储 智能硬件
CPU的定义与功能与架构
CPU(中央处理器)是计算机的核心部件,负责执行程序指令、控制数据传输和进行运算。它能处理算术与逻辑运算,并协调其他硬件协同工作。x86架构源于英特尔,适用于PC和服务器,采用复杂指令集;ARM架构则由Acorn等公司开发,广泛用于移动设备和嵌入式系统,采用精简指令集,功耗低且能效比高。
1478 5
|
12月前
|
Android开发 开发者 Kotlin
Android实战经验之Kotlin中快速实现MVI架构
MVI架构通过单向数据流和不可变状态,提供了一种清晰、可预测的状态管理方式。在Kotlin中实现MVI架构,不仅提高了代码的可维护性和可测试性,还能更好地应对复杂的UI交互和状态管理。通过本文的介绍,希望开发者能够掌握MVI架构的核心思想,并在实际项目中灵活应用。
558 8
|
机器学习/深度学习 存储
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
480 0
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
|
开发工具 Android开发 iOS开发
Android与iOS生态差异深度剖析:技术架构、开发体验与市场影响####
本文旨在深入探讨Android与iOS两大移动操作系统在技术架构、开发环境及市场表现上的核心差异,为开发者和技术爱好者提供全面的视角。通过对比分析,揭示两者如何塑造了当今多样化的移动应用生态,并对未来发展趋势进行了展望。 ####
|
网络协议 Linux Android开发
深入探索Android系统架构与性能优化
本文旨在为读者提供一个全面的视角,以理解Android系统的架构及其关键组件。我们将探讨Android的发展历程、核心特性以及如何通过有效的策略来提升应用的性能和用户体验。本文不包含常规的技术细节,而是聚焦于系统架构层面的深入分析,以及针对开发者的实际优化建议。
410 21
|
存储 Linux API
深入探索Android系统架构:从内核到应用层的全面解析
本文旨在为读者提供一份详尽的Android系统架构分析,从底层的Linux内核到顶层的应用程序框架。我们将探讨Android系统的模块化设计、各层之间的交互机制以及它们如何共同协作以支持丰富多样的应用生态。通过本篇文章,开发者和爱好者可以更深入理解Android平台的工作原理,从而优化开发流程和提升应用性能。
|
安全 Android开发 iOS开发
深入探索iOS与Android系统架构差异及其对开发者的影响
本文旨在通过对比分析iOS和Android两大移动操作系统的系统架构,探讨它们在设计理念、技术实现及开发者生态方面的差异。不同于常规摘要仅概述内容要点,本摘要将简要触及核心议题,为读者提供对两大平台架构特点的宏观理解,铺垫
|
存储 人工智能 编译器
【AI系统】CPU 指令集架构
本文介绍了指令集架构(ISA)的基本概念,探讨了CISC与RISC两种主要的指令集架构设计思路,分析了它们的优缺点及应用场景。文章还简述了ISA的历史发展,包括x86、ARM、MIPS、Alpha和RISC-V等常见架构的特点。最后,文章讨论了CPU的并行处理架构,如SISD、SIMD、MISD、MIMD和SIMT,并概述了这些架构在服务器、PC及嵌入式领域的应用情况。
1342 5

热门文章

最新文章