【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


目录
相关文章
|
数据采集 运维 Serverless
云函数采集架构:Serverless模式下的动态IP与冷启动优化
本文探讨了在Serverless架构中使用云函数进行网页数据采集的挑战与解决方案。针对动态IP、冷启动及目标网站反爬策略等问题,提出了动态代理IP、请求头优化、云函数预热及容错设计等方法。通过网易云音乐歌曲信息采集案例,展示了如何结合Python代码实现高效的数据抓取,包括搜索、歌词与评论的获取。此方案不仅解决了传统采集方式在Serverless环境下的局限,还提升了系统的稳定性和性能。
672 0
|
安全 Android开发 iOS开发
深入探索Android与iOS的差异:从系统架构到用户体验
在当今的智能手机市场中,Android和iOS无疑是最受欢迎的两大操作系统。本文旨在探讨这两个平台之间的主要差异,包括它们的系统架构、开发环境、安全性、以及用户体验等方面。通过对比分析,我们可以更好地理解为何不同的用户群体可能会偏好其中一个平台,以及这些偏好背后的技术原因。
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
693 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
机器学习/深度学习 存储
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
1089 15
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
|
运维 供应链 前端开发
中小医院云HIS系统源码,系统融合HIS与EMR功能,采用B/S架构与SaaS模式,快速交付并简化运维
这是一套专为中小医院和乡镇卫生院设计的云HIS系统源码,基于云端部署,采用B/S架构与SaaS模式,快速交付并简化运维。系统融合HIS与EMR功能,涵盖门诊挂号、预约管理、一体化电子病历、医生护士工作站、收费财务、药品进销存及统计分析等模块。技术栈包括前端Angular+Nginx,后端Java+Spring系列框架,数据库使用MySQL+MyCat。该系统实现患者管理、医嘱处理、费用结算、药品管控等核心业务全流程数字化,助力医疗机构提升效率和服务质量。
986 4
|
Android开发 开发者 Kotlin
Android实战经验之Kotlin中快速实现MVI架构
MVI架构通过单向数据流和不可变状态,提供了一种清晰、可预测的状态管理方式。在Kotlin中实现MVI架构,不仅提高了代码的可维护性和可测试性,还能更好地应对复杂的UI交互和状态管理。通过本文的介绍,希望开发者能够掌握MVI架构的核心思想,并在实际项目中灵活应用。
763 8
|
开发工具 Android开发 iOS开发
Android与iOS生态差异深度剖析:技术架构、开发体验与市场影响####
本文旨在深入探讨Android与iOS两大移动操作系统在技术架构、开发环境及市场表现上的核心差异,为开发者和技术爱好者提供全面的视角。通过对比分析,揭示两者如何塑造了当今多样化的移动应用生态,并对未来发展趋势进行了展望。 ####
1143 27
|
机器学习/深度学习 存储
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
694 0
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
|
网络协议 Linux Android开发
深入探索Android系统架构与性能优化
本文旨在为读者提供一个全面的视角,以理解Android系统的架构及其关键组件。我们将探讨Android的发展历程、核心特性以及如何通过有效的策略来提升应用的性能和用户体验。本文不包含常规的技术细节,而是聚焦于系统架构层面的深入分析,以及针对开发者的实际优化建议。
595 21
|
存储 Linux API
深入探索Android系统架构:从内核到应用层的全面解析
本文旨在为读者提供一份详尽的Android系统架构分析,从底层的Linux内核到顶层的应用程序框架。我们将探讨Android系统的模块化设计、各层之间的交互机制以及它们如何共同协作以支持丰富多样的应用生态。通过本篇文章,开发者和爱好者可以更深入理解Android平台的工作原理,从而优化开发流程和提升应用性能。

热门文章

最新文章