android逆向ARM 分析入门【Ⅱ】解析

㈠ARM解析-IDA修改数据

1.修改寄存器的值
在 General registers 窗口右键要更改的值,然后输入

2.指令对应的值
在Hex View窗口,右键要更改的对应值,然后输入

3.要更改指令
光标选中指令,然后再 Hex View 窗口指令上右键点击 Edit->然后输入值>右键 Applay changes

指令转换和计算可以用工具:ArmToHex

4.更改为 NOP 指令
更改指令前 8 位为:00 00 00 00,意思为不执行

5.三级流水线
当前执行的指令位置,下一条指令状态编译,再下一条状态是读取(修改一个函数或者指令,需要提前三条开始更改)

6.机器码计算(32 位)
指令构成:Cond+B+L+offset

拆分:
1.Cond为: 31-28 位 ,值如图 1图 1
2.B为:27-25 位 101,值如图 2图 2
3.L为:24 位,不带链接0 或 带连接1
4.offset为:23-0 位,计算时需要涉及三级流水线,采取高位补 0,进行填充 == (补充:目标地址与该指令相对偏移,eg:0001BD0 BEQ loc_1c04,offset = (1c04-(1BD0+8))/4) = 1011==

最终拼接起来的 32 位 2 进制,转换成 16 进制 hex

汇编指令更改为机器码工具:armtoHex

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值