• android 反编译,反,注射LOG


    反编译smali注射显示LOG该代码。以后使用:

    .class public Lnet/iaround/connector/DebugClass;
    .super Ljava/lang/Object;
    .source "DebugClass.java"
    
    
    # direct methods
    .method public constructor <init>()V
        .locals 0
    
        .prologue
        .line 5
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        return-void
    .end method
    
    .method public static showLog(Ljava/lang/String;)V
        .locals 5
        .parameter "log"
    
        .prologue
        .line 9
        new-instance v2, Ljava/lang/Exception;
    
        invoke-direct {v2}, Ljava/lang/Exception;-><init>()V
    
        invoke-virtual {v2}, Ljava/lang/Exception;->getStackTrace()[Ljava/lang/StackTraceElement;
    
        move-result-object v2
    
        const/4 v3, 0x1
    
        aget-object v1, v2, v3
    
        .line 10
        .local v1, traceElement:Ljava/lang/StackTraceElement;
        new-instance v2, Ljava/lang/StringBuilder;
    
        invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getClassName()Ljava/lang/String;
    
        move-result-object v3
    
        invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
    
        move-result-object v3
    
        invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    
        const-string v3, "."
    
        invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    
        move-result-object v2
    
        invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getMethodName()Ljava/lang/String;
    
        move-result-object v3
    
        invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    
        move-result-object v2
    
        const-string v3, ":	"
    
        invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    
        move-result-object v2
    
        invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    
        move-result-object v0
    
        .line 11
        .local v0, pre:Ljava/lang/String;
        const-string v2, "yangjianchao"
    
        new-instance v3, Ljava/lang/StringBuilder;
    
        invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
    
        move-result-object v4
    
        invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    
        invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    
        move-result-object v3
    
        invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    
        move-result-object v3
    
        invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
    
        .line 12
        return-void
    .end method
    
    
    # virtual methods
    .method public o()Ljava/lang/String;
        .locals 1
    
        .prologue
        .line 15
        const-string v0, "888888888888888"
    
        .line 21
        .local v0, rtn:Ljava/lang/String;
        return-object v0
    .end method



    调用方法:

    invoke-static {p2}, Lnet/iaround/connector/DebugClass;->showLog(Ljava/lang/String;)V

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    通俗的讲解下傅立叶分析和小波分析之间的关系
    Kalman滤波
    K-L变换和 主成分分析PCA
    c语言字符串库函数#include<string.h>
    c语言字符类别测试库函数#include<ctype.h>
    c语言之extern关键字
    陈正冲老师讲c语言之声明和定义的区别
    陈正冲老师讲c语言之const关键字
    陈正冲老师讲c语言void关键字
    陈正冲老师讲c语言之内存的申请malloc() 和释放free()
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4673141.html
Copyright © 2020-2023  润新知