5

I have recently dug into some smali code and would love learning it. I have checked the dalvik bytecode reference but I couldn't find a structure reference as to when/how to use these

.locals
.local
.registers
.prologue
.line
.annotation
.parameter

Do you know other resources to explain more of the smali structure?

4

1 回答 1

3

其中大多数,除了 .locals、.registers 和 .annotation 之外,都是作为方法的一部分存储的调试信息的一部分。您可以在dex 格式文档的 debug_info_item 部分中找到有关这些的更多信息。

对于 .locals 和 .registers 指令,这是两种不同的方式,您可以指定方法中可用的寄存器数量(即 code_item 的 registers_size 字段,根据dex 格式文档)。您可以在 smali googlecode 网站上的Registers wiki 页面上找到有关两者之间差异的更多信息。

最后,.annotation 指令定义了一个注解。您可以在dex 格式文档中找到更多信息。具体来说,您需要查看以下项目:

  • annotations_directory_item:包含对一个类的所有类、方法、字段和参数注解的引用
  • annotation_set_ref_list:包含对与方法参数关联的注释的引用
  • annotation_set_item:包含可以与方法、字段或类关联的注释列表
  • encoded_annotation:存储单个注释
于 2013-09-03T06:58:36.573 回答