1

我正在尝试分析已编译的 Dalvik 代码,但我发现了一个问题。这是 .dex 格式的规范。我可以获得文件的标题,但我不明白接下来会发生什么 - 当我使用 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 文件的真正结构是什么?

4

2 回答 2

5

Baksmali 可以转储现有 dex 文件的上下文,格式类似于 dx 的十六进制转储。(优点是可以dump现有的dex文件)

baksmali classes.dex -D out.dump

于 2012-12-08T19:15:30.007 回答
3

您所指的规范实际上确实准确地描述了 dex 文件的结构。(注:我写了那个文件。)

Dexdump 不会按顺序输出 dex 文件的全部内容,这解释了您的一些困惑。该dx工具在生成 dex 文件时可以输出带注释的 dex 文件内容列表。您可能会发现这很有用。抱歉,我不记得临时选项,但它会类似于--dex --dump-to=file.txt --dump-bytes.

我希望这有帮助。

于 2012-12-08T18:59:09.277 回答