Android下smali常用注入代码
这几天做Android的CTF,发现使用smali注入的方式获取Flag的方法比较通用,所以写出来参考一下。
简介
通过注入可以将一些内部变量输出到外部来,使一些看不到的内容看到。在Android一般输出的媒介有Toast和Logcat。
注入方式
Toast方式
可以将第三行的v4寄存器换成需要查看的寄存器。
Logcat方式
同样可以将第二行v1寄存器换成需要的寄存器。
注意事项
寄存器数量
在smali中,每个 .method 方法中都会用 .locals 声明需要寄存器的数量,在注入的时候要修改寄存器的数量进行扩充。
格式转换
要查看的寄存器的内容需要为 String 类型,如果不是就需要转换。
int转String
v1 为需要查看的int类型寄存器,转换后的结果存放到 v4 中。
boolean转String
v1 为需 要产看的boolean类型寄存器,转换后的结果存放到 v4 中。