1

我在 Google 上阅读了 .dex 格式的文档,但我仍然对某些层感到困惑。

link_size & link_off :谷歌说它没有指定,然后说它是运行时的钩子,那它是什么?全局或本地的静态挂钩?还是本机库的挂钩?

map_off :为什么需要这个冗余 ID 列表?是不是有点像文件地址表?

proto_size & proto_off :不太确定它到底是什么。我拆解了一个随机挑选的 dex 并查看了这部分,这部分包含一些短符号,如 DD/LL/JLJJ/...brabrabra,这让我对这部分更加困惑。这部分到底是做什么的?

任何人都可以启发我吗?

4

1 回答 1

1

链接部分从未被指定或使用过。您可能会遇到一些对这些字段具有垃圾值的 dex 文件,以试图阻止 baksmali 能够在它们上运行(由于一个旧错误,该错误已修复了一段时间)。

对于地图项,是的,索引项部分的位置存在冗余 - 这些位置在标题项和地图项中都指定。但是地图项是唯一指定偏移项部分的位置的地方(数据部分中的可变大小项)

原型部分定义方法的原型,即参数和返回类型。如果您查看 method_id_item,您会看到它引用了原型项目。

于 2012-07-17T17:06:37.763 回答