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

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

2019-5-25 22:26
1747
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软件安全与逆向分析》
1c1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6L8%4g2J5j5$3g2Q4x3X3g2S2L8X3c8J5L8$3W2V1i4K6u0W2j5$3!0E0i4K6u0r3k6r3g2$3K9h3y4W2M7#2)9J5c8Y4c8W2j5$3S2Q4x3V1k6V1j5h3I4$3K9h3E0Q4x3V1k6V1j5h3I4$3K9h3E0Q4x3X3c8T1P5i4c8W2j5$3!0V1k6b7`.`.
7e5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6L8%4g2J5j5$3g2Q4x3X3g2S2L8X3c8J5L8$3W2V1i4K6u0W2j5$3!0E0i4K6u0r3k6r3g2$3K9h3y4W2M7#2)9J5c8Y4c8W2j5$3S2Q4x3V1k6V1j5h3I4$3K9h3E0Q4x3V1k6A6L8Y4y4@1M7Y4g2U0N6r3W2G2L8W2)9J5k6r3k6G2M7X3#2S2N6s2x3`.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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