首页
社区
课程
招聘
[求助]Dalvik字节码 参数寄存器好几个都对不上顺序。
发表于: 2019-5-25 22:26 1582

[求助]Dalvik字节码 参数寄存器好几个都对不上顺序。

2019-5-25 22:26
1582
12 5 2                                   |0007: const/4 v2, #int 5 // #5
12 3 3                                   |0008: const/4 v3, #int 3 // #3
如上两条Dalvik字节码,前两位相同的12对应格式ID11n,查询Dalvik 可执行指令格式得到如下格式:

const/4 vA, #+B 解释如下:

A: 目标寄存器(4 位)

B: 有符号整数(4 位)

将给定的字面值(符号扩展为 32 位)移到指定的寄存器中。

第一部分12对应格式
第二部分 为什么是常数 #+5 而不是参数寄存器v2
第三部分  为什么是常数 #+3 而不是参数寄存器v3

----------------------------------------第二个问题-------------------------------
同上下面这句Dalvik字节码:查询6e得到的格式如下:
[A=3] op {vC, vD, vE}, kind@BBBB  
解释如下:
A: 参数字数(4 位)B: 方法引用索引(16 位)C..G: 参数寄存器(每个寄存器各占 4 位)

6e30 0100 2003                         |0009: invoke-virtual {v0, v2, v3}, LHello;.foo:(II)I // method@0001
第一部分6e对应格式,30对应A=3
第二部分0100对应方法常量01
第三部分参数寄存器 2003 这一部分应该这么对照呢,为什么对不上呢?

有高手指点下迷津么,谢谢。

@非虫
参考《Android软件安全与逆向分析》
https://source.android.com/devices/tech/dalvik/dalvik-bytecode
https://source.android.com/devices/tech/dalvik/instruction-formats

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//