【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月前
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
1325 61
|
9月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
850 10
|
10月前
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
|
12月前
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
336 1
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器ECS架构区别及选择参考:X86计算、ARM计算等架构介绍
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下这些架构各自的主要性能及适用场景,以便大家了解不同类型的架构有何不同,主要特点及适用场景有哪些。
1826 10
|
4月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
417 3

热门文章

最新文章