在app能够反编译和从新打包的时候,能够使用log插装。java
注意:android
不要使用里面默认的寄存器,由于可能会报错。app
在local内加1spa
.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输出code
传入的时候须要传入两个寄存器blog
->sj(xx,v0,v1)Vstring
xx表示tag编译
v0,v1表示一个long值class
输出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