android smali 插入log日志

在app可以反编译和重新打包的时候,可以使用log插装。

注意:

不要使用里面默认的寄存器,因为可能会报错。

在local内加1

.locals 4 ->
.locals 5
源smali使用了v0-v3
你就使用v4
const-string v4, "log"
    invoke-static {v4, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
    invoke-static {v4, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
    invoke-static {v4, p2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

 long输出

传入的时候需要传入两个寄存器

->sj(xx,v0,v1)V

xx表示tag

v0,v1表示一个long值

输出string,long

.method public static sj(Ljava/lang/String;J)V
    .locals 1
    .prologue

    invoke-static {p1, p2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;

    move-result-object v0

    invoke-static {p0, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    return-void
.end method

输出string,int

.method public static si(Ljava/lang/String;I)V
    .locals 1

    invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v0

    invoke-static {p0, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    return-void
.end method
原文地址:https://www.cnblogs.com/Fightingbirds/p/11428455.html