天天看点

静态分析Smali添加日志

1、准备内容:

1.1、新建Android Studio项目,用于Smali增加日志处理代码,并生成apk;(logcatCrackDemo项目)

1.2、新建Android Studio项目,并编写MyLog.java代码,并生成apk;(logcatDemo项目)

静态分析Smali添加日志

2、通过ApkIDE修改Smali代码,增加日志输出;

2.1、ApkIDE打开logcatdemo项目,点击MyLog.smali,右键打开文件夹;

静态分析Smali添加日志

2.2、在文件夹目录下,拷贝MyLog.smali至logcatCrackDemo的smali文件夹的根目录,并在ApkIDE中刷新smali文件夹;

静态分析Smali添加日志

2.3、添加代码;

2.3.1、修改MyLog.smali代码,由于已经将MyLog.smali放到了smali根目录下,因此需要处理把MyLog代码里的命名空间删除;

静态分析Smali添加日志

删除后

静态分析Smali添加日志

2.3.2、从logcatdemo中的MainActivity.smali中拷贝,MyLog调用方法;

静态分析Smali添加日志

2.3.3、上一步拷贝的代码,放入logcatCrackDemo的MainActivity.smali文件中,并保存;

静态分析Smali添加日志

2.3.4、重新生成Apk,并安装;

静态分析Smali添加日志

3、用logcat读取日志

打开命令行输入:adb logcat -s SQ;

手机打开App即可见到日志信息

静态分析Smali添加日志

4、备注

在加代码的时候需要注意的是:

在invoke-static/invoke-virtual指令返回类型是V之后可以加入;

在invoke-static/invoke-virtual指令返回类型不是V,那么在move-result-object命令之后可以加入。

继续阅读