美文网首页
初识[android逆向] smali

初识[android逆向] smali

作者: Anxxx | 来源:发表于2019-07-19 09:49 被阅读0次

    初识[android逆向] smali,烦请各位大佬多多海涵,小萌新一枚。

    smali文件:

    无论是普通类、抽象类、接口类或者内部类,在反编译出的代码中,它 们都以单独的smali 文件来存放。每个 smali 文件都由若干条语句组成, 所有的语句都遵循着一套语法规范。

    1.描述类的信息

    .class < 访问权限> [ 修饰关键字] < 类名>

    .super < 父类名>

    .source <源文件名>

    2. 静态字段

      #stantic fields

    .field < 访问权限> static [ 修饰关键字] < 字段名>:< 字段类型>

    3.实例字段

      #instance fields

    .field < 访问权限> [ 修饰关键字] < 字段名>:< 字段类型>

    4.直接方法

    #direct methods

    .method <访问权限> [ 修饰关键字] < 方法原型>

    <.locals> “.locals ”指定了使用的局部变量的个数

    [.param] “.param”指定了方法的参数

    [.prologue] “.prologue ”指定了代码的开始处

    [.line]         “.line ”指定了该处指令在源代码中的行号

    <代码体>

    .end method

    5. 虚方法的声明与直接方法相同,只是起始处的注释为“virtual methods”。

    6.接口

    # interfaces

      .implements < 接口名>“.implements ”是接口关键字,后面的接口

      名是 DexClassDef 结构中 interfacesOff 字段指定的内容。

    7.注解

      # annotations

      .annotation [ 注解属性] < 注解类名>

    [ 注解字段 = 值]

      .end annotation

      注解的作用范围可以是类、方法或字段。如果注解的作用范围是类,  “.annotation ”指令会直接定义在 smali 文件中,如果是方法或字段,“.annotation ”指令则会包含在方法或字段定义中。

    相关文章

      网友评论

          本文标题:初识[android逆向] smali

          本文链接:https://www.haomeiwen.com/subject/qnadlctx.html