smali基础

smali语法学习,参考吾爱破解安卓逆向入门学习https://www.52pojie.cn/thread-408645-1-1.html




记录一些易混淆的点

寄存器p0

static方法中,p0代指thisp1为方法的第一个参数
在static方法中,p0为方法的第一个参数

.local与.locals

1
.local v1, "future":Lcom/android/volley/toolbox/RequestFuture;, "Lcom/android/volley/toolbox/RequestFuture<Ljava/lang/Void;>;"

这里的.local表示的是

1
2
RequestFuture<Void> future; 
future = v1;

.locals 数字 定义所学内部变量数,即v寄存器的数

smali的函数调用

smali中的函数和成员变量分为direct和virtual,direct method就是private函数,其余的public和protect函数是virtual method。

invoke-XXX指令:

  1. invok-static:调用static函数
  2. invoke-super:调用父类方法指令,一般用于调用onCreate,onDestroy等方法。
  3. invoke-direct:调用privat函数
  4. invoke-virtual:调用public和protect函数

    破解的程序和游戏

    安装adb过程参考博客https://www.cnblogs.com/nebie/p/9145627.html
    破解过的游戏:

    动态调试

    具体会在另一个博客详细讲解,详细学习Java层和so层动态调试后写的博客