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

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

.method constructor <init>(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;-><init>()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;-><init>()V
//本类继承自Thread 这里显示的调用基类的构造函数

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

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

未完持续。。。

参考链接

  1. s002android逆向安全初级篇之android smali语法总结
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容