【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )
2023-06-13 09:17:58 时间
文章目录
一、ARM 处理器工作模式
参考 【嵌入式开发】ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存器 CPSR SPSR | 模式设置代码编写 | 设置 svc 模式 ) 博客 , ARM 处理器有
种工作模式 ;
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 架构中寄存器数量很多 , 有
个 ;
另外多了 标志寄存器 CPSR , 程序状态寄存器 SPSR ;
程序状态寄存器 SPSR 在中断模式下使用 ;
R0 ~ R3 这
个寄存器是参数寄存器 ;
x86 架构中 , 参数传递都是通过堆栈传递的 ;
ARM 架构中 , 如果参数小于
个参数 , 传输传递是通过寄存器传递的 , 如果大于等于
个参数 , 则 R3 寄存器记录一个栈地址 , 对应的栈中就后续参数值 ;
R4 ~ R12 这
个寄存器是变量寄存器 ,
ARM 中有
个寄存器 , R0 ~ R7 是所有模式通用的寄存器 ;
上述
种模式下 , 寄存器的的个数与种类都是不同的 ;
每个模式对应的寄存器参考 :
如果不做嵌入式开发 , 用户模式 和 系统模式 是主要需要学习的模式 , Android 逆向中 , 主要涉及这两个模式 ;
R13 ( SP ) 是堆栈指针寄存器 ;
R14 ( LR ) 是返回地址寄存器 ;
R15 ( PC ) 是指令寄存器 , 指向下一条要执行的指令 ;
Android 逆向中使用到的寄存器有
- 参数寄存器 R0 ~ R3
- 变量寄存器 R4 ~ R12
- 堆栈指针寄存器 R13 ( SP )
- 返回地址寄存器 R14 ( LR )
- 指令寄存器 R15 ( PC )
- 标志寄存器 CPSR
相关文章
- Android 存储空间的最佳实践
- android签名命令行,Android系统签名位置及命令
- Android 使用substring截取字符串
- android中适配器的作用,适配器模式 在Android中的简单理解「建议收藏」
- Android Studio 安装教程
- Android点击button弹出ProgressDialog,响应结束后ProgressDialog消失
- android短信验证码方案,Android之短信验证码
- iphone4装android,iPhone4可安装Android实现双系统启动.pdf
- android系统中toast是什么_Android个人资料简单布局
- Android Binder框架实现之bindService详解「建议收藏」
- android登录注册跳转的代码_Android开发代码
- Android resource linking failed_android sdk location should not
- eclipse中android开发_Android开发教程
- Android修改字体_android设置字体样式
- Android开发使用Gradle Kotlin的体验与建议
- Android之View绘制问题汇总
- 【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 )
- 【ijkplayer】编译 Android 版本的 ijkplayer ③ ( 执行 compile-ffmpeg.sh clean 命令 | 下载并配置 android-ndk-r10e )
- 【Android 逆向】Dalvik 函数抽取加壳 ⑥ ( 函数抽取加壳实现 | 函数抽取 | 函数还原 )
- Android性能优化典范之多线程篇
- Android视频播放器屏幕左侧边随手指上下滑动亮度调节变暗变亮原理实现详解手机开发
- android推荐使用dialogFrament而不是alertDialog详解手机开发
- Android存储系统的架构与设计详解手机开发
- 使用Android新式LruCache缓存图片,基于线程池异步加载图片详解编程语言