Android逆向-2.ARM汇编与寄存器

ARM处理器:

ARM状态(执行32位对齐指令的ARM指令)
Thumb状态(执行16位对齐的Thumb指令)

如何查看是什么指令多少位数?

IDA静态分析在反汇编窗口----->随便选中条语句----->然后到Hex View窗口查看
Hex选中4个就是ARM指令,选中2个就是Thumb指令
在这里插入图片描述
在这里插入图片描述

ARM处理器支持7种运行模式:

  • usr(用户模式):ARM处理器正常程序执行模式
  • fiq(快速中断模式):用于高速数据传输或通道处理
  • irq(外部中断模式):用于通用的中断处理
  • svc(管理模式):操作系统使用的保护模式
  • abt (数据访问终止模式): 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
  • sys(系统模式): 运行具有特权的操作系统任务。
  • und(未定义指令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

逆向分析和修改汇编指令:

赋值、跳转、算术运算、移位运算、堆栈操作、内存读写、函数调用

分析和修改汇编指令需要关心的寄存器:

  • 用户模式(usr):
    不分组寄存器(R0-R7)
    分组寄存器(R8-R14)
  • 传递参数与返回值(R0-R3)
  • 保存栈顶地址(R13/SP)
  • 保存函数的返回地址(R14/LR)
  • 程序计数器R15(PC):控制程序流程
  • 状态寄存器CPSR:判断是Thumb还是ARM指令
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值