我有一个从 dex 文件中提取的字节序列,我想使用 androguard 或任何其他 python 包对其进行反编译
我的序列看起来像:
b'\x17\x8a\\\x05{\x00p\x00\x00\x00xV4\x12\x00\x00\x00\x00\x00\x00\x00\x00\x80\x04'
我有一个从 dex 文件中提取的字节序列,我想使用 androguard 或任何其他 python 包对其进行反编译
我的序列看起来像:
b'\x17\x8a\\\x05{\x00p\x00\x00\x00xV4\x12\x00\x00\x00\x00\x00\x00\x00\x00\x80\x04'
在没有关于 dex 文件的其他上下文或信息的情况下,不可能从 dex 文件中反编译或反汇编一组随机字节。
一方面,该工具不知道字节来自 dex 文件的哪个部分。Dex 文件中有许多不同的数据结构,如果不知道字节来自哪个数据结构的哪一部分,工具将不知道如何解释它。
此外,关于给定类甚至方法的信息分布在 dex 文件的多个位置。作为一个基本示例,让我们看一下 const-string 指令的编码。看看我在回答您的第一个问题时发布的相同示例:
0001d8: 1a01 0000 | const-string v1, "Hello World!"
在这种情况下,1a
是“const-string”的操作码,01
是存储值的寄存器(例如v1
),并且00 00
毫无疑问是整数值的小端编码0
,它被解释为全局的索引dex 文件的字符串池。如果该工具无权访问该全局字符串池,则它无法知道string index 0
指的是什么。