我正在尝试分析已编译的Dalvik代码,但我发现了一个问题。这是.dex格式的specification。我可以获取文件的标题,但我无法理解接下来会发生什么 - 当我使用dexdump时,我在标题旁边有类:
class_defs_off : 61836 (0x00f18c)
data_size : 368612
data_off : 72312 (0x011a78)
Class #0 header:
class_idx : 62
access_flags : 1536 (0x0600)
但是当我查看我的字节码时,还有其他的东西。我无法理解标题旁边的内容。根据规范它是string_idi's
,但我不确定。 .dex文件的真实结构是什么?
答案 0 :(得分:5)
Baksmali可以以类似于dx的十六进制转储的格式转储现有dex文件的上下文。 (优点是它可以转储现有的dex文件)
baksmali classes.dex -D out.dump
答案 1 :(得分:3)
您引用的规范确实准确地描述了dex文件的结构。 (注意:我写了那份文件。)
Dexdump没有按顺序输出dex文件的全部内容,这解释了一些你的困惑。 dx
工具在生成dex文件时可以输出带注释的dex文件内容列表。你可能会觉得这很有用。抱歉,我不记得这些选项,但它会像--dex --dump-to=file.txt --dump-bytes
。
我希望这会有所帮助。