Dalvik再造,.dex文件的结构

时间:2012-12-08 13:10:40

标签: android reverse-engineering dalvik

我正在尝试分析已编译的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文件的真实结构是什么?

2 个答案:

答案 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

我希望这会有所帮助。