我在Google上阅读了.dex格式文档,但我仍然对某些图层感到困惑。
link_size& link_off:Google表示它未指定,然后说它是运行时的钩子,那它是什么?全局或本地的静态挂钩?还是本地图书馆的钩子?
map_off:为什么需要这个冗余ID列表?它有点像文件地址表吗?
proto_size& proto_off:不太确定它究竟是什么。我已经解组了一个随机挑选的dex,看看这一节,这一节包含了一些像DD / LL / JLJJ / ...... brabrabra这样的短标志,让我对这部分更加困惑。这部分到底在做什么?
任何人都可以启发我吗?
答案 0 :(得分:1)
从未指定或使用过链接部分。您可能会遇到一些对这些字段具有垃圾值的dex文件,以防止baksmali能够在它们上运行(由于旧的错误,已经修复了一段时间)。
对于地图项目,是,索引项目部分的位置存在冗余 - 这些部分的位置在标题项目和地图项目中指定。但是地图项是指定偏移项部分位置的唯一位置(数据部分中的可变大小项)
原型部分定义了方法的原型,即参数和返回类型。如果你查看method_id_item,你会发现它有一个对原型项的引用。