s003android逆向安全初级篇之apk smali语法之实例分析

结合上一篇对smali语法的总结,对遇到的一些实例进行分析

.method constructor (Lcom/android/netprovider/b/f;Ljava/util/ArrayList;)V
    .locals 0

    iput-object p1, p0, Lcom/android/netprovider/b/g;->b:Lcom/android/netprovider/b/f;

    iput-object p2, p0, Lcom/android/netprovider/b/g;->a:Ljava/util/ArrayList;

    invoke-direct {p0}, Ljava/lang/Thread;->()V

    return-void
.end method

这是一个构造函数,包含三个参数

  1. 类本身的this指针
  2. Lcom/android/netprovider/b/f类型的对象
  3. Ljava/util/ArrayList类型的对象

.locals 0指明本有本地变量。于是以上三个形参分别对应的寄存器代号为p0,p1,p2

 iput-object p1, p0, Lcom/android/netprovider/b/g;->b:Lcom/android/netprovider/b/f;
 iput-object p2, p0, Lcom/android/netprovider/b/g;->a:Ljava/util/ArrayList;
//分别用传递过来的两个参数,初始化给类的两个成员变量b和a。
invoke-direct {p0}, Ljava/lang/Thread;->()V
//本类继承自Thread 这里显示的调用基类的构造函数

综上,将如上代码,转换为java代码为:

//被混淆过了,看起来好丑
g(f b,ArrayList a){
    ma = a;
    mb = b;
}

未完持续。。。

参考链接

  1. s002android逆向安全初级篇之android smali语法总结

你可能感兴趣的:(s003android逆向安全初级篇之apk smali语法之实例分析)