码迷,mamicode.com
首页 > 其他好文 > 详细

Smali插桩打日志

时间:2016-06-27 21:20:07      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

一、smali目录下新建crack.smali,内容如下:

.class public Lcrack;
.super Ljava/lang/Object;
.source "crack.java" 

.method public static log1(Ljava/lang/String;)V #打印出info 1字符串
    .locals 1
    .prologue 

    const-string v0, "crack_log_str"
    invoke-static {v0, p0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
    return-void
.end method 

.method public static I(I)V   #打印出int型值
    .locals 2
    .prologue
    const-string v0, "crack_log_int"

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

    move-result-object v1
    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
    return-void
.end method

.method public static J(J)V #打印出long类型的值
.locals 2
.prologue

const-string v0, "crack_log_long"
invoke-static {p0, p1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; 

move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method

二、使用方法(打印String):

invoke-static {v1}, Lcrack;->log1(Ljava/lang/String;)V

三、有时日志太多,要写入文件分析:

.class public Lcrack2;
.super Ljava/lang/Object;
.source "crack2.java"
.method public static puts(Ljava/lang/String;)V
    .locals 7
    .prologue

    :try_start_0

    const-string v3, "/sdcard/crack/debug.log"
    new-instance v2, Ljava/io/FileOutputStream;

    const/4 v5, 0x1
    invoke-direct {v2, v3, v5}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;Z)V

    .line 19
    new-instance v4, Ljava/io/OutputStreamWriter;
    const-string v5, "gb2312"
    invoke-direct {v4, v2, v5}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/lang/String;)V

    .line 21
    invoke-virtual {v4, p0}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
    const-string v5, "\r\n" 
    invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V

    .line 23
    invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->flush()V

    .line 25
    invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->close()V

    .line 27
    invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
    :try_end_0
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

    .line 37
    :cond_0
    :goto_0
    return-void

    .line 30
    :catch_0
    move-exception v0

     .line 34
    const-string v5, "debug"
    const-string v6, "file write error"
    invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I 

    goto :goto_0
.end method

 #使用方法:invoke-static {vx}, Lcrack2;->puts(Ljava/lang/String;)V

 

Smali插桩打日志

标签:

原文地址:http://www.cnblogs.com/kiiim/p/5621312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!