通过smali注入log和函数调用堆栈
0x00
smali注入log,看本文前。请大家先看Android安全–加强版Smali Log注入。
有几点要说明:
1、在上文中,crack.smali,并非作者直接写的smali文件,而是先写java代码然后编译成dex,再用apktool把dex反编译成smali得到的。
我们也能够用这样的方法来注入我们自定义的类。
2、使用crack.smali时,要先改动寄存器的数量,然后再插入smali语句。
0x01
我们在反编译apk时。经常要知道函数的调用堆栈。相应的java代码例如以下:
new Exception("print trace").printStackTrace();
将其转换成smali语法的反汇编代码为:
new-instance v0, Ljava/lang/Exception;
const-string v1, "print trace"
invoke-direct {v0,v1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
插入后,通过logcat就可以观察到堆栈,使用命令adb logcat *:e。