静态分析Smali添加日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 如何动手实现Smali添加日志

1、准备内容:
1.1、新建Android Studio项目,用于Smali增加日志处理代码,并生成apk;(logcatCrackDemo项目)
1.2、新建Android Studio项目,并编写MyLog.java代码,并生成apk;(logcatDemo项目)
1.png
2、通过ApkIDE修改Smali代码,增加日志输出;
2.1、ApkIDE打开logcatdemo项目,点击MyLog.smali,右键打开文件夹;
2.png
2.2、在文件夹目录下,拷贝MyLog.smali至logcatCrackDemo的smali文件夹的根目录,并在ApkIDE中刷新smali文件夹;
3.png
2.3、添加代码;
2.3.1、修改MyLog.smali代码,由于已经将MyLog.smali放到了smali根目录下,因此需要处理把MyLog代码里的命名空间删除;
4.png
删除后
5.png
2.3.2、从logcatdemo中的MainActivity.smali中拷贝,MyLog调用方法;
6.png
2.3.3、上一步拷贝的代码,放入logcatCrackDemo的MainActivity.smali文件中,并保存;
7.png
2.3.4、重新生成Apk,并安装;
8.png
3、用logcat读取日志
打开命令行输入:adb logcat -s SQ;
手机打开App即可见到日志信息
9.png
4、备注
在加代码的时候需要注意的是:
在invoke-static/invoke-virtual指令返回类型是V之后可以加入;
在invoke-static/invoke-virtual指令返回类型不是V,那么在move-result-object命令之后可以加入。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5月前
|
安全 Java 图形学
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
75 0
源文件与模块生成时的文件不同,是否希望调试器使用它?如何解决
源文件与模块生成时的文件不同,是否希望调试器使用它?如何解决
|
前端开发 编译器 iOS开发
Clang代码覆盖率检测(插桩技术)
Clang的全称是C Language Family Frontend for LLVM,即基于LLVM的C系列语言的前端编译器。iOS应用的前端编译,即是采用Clang完成的。本篇文章,我们主要介绍Clang内置的一个简单的代码覆盖率检测功能,对于iOS开发来说,此功能更多用于Objective-C的方法插桩,为二进制重排提供支持,优化应用启动速度。但代码覆盖率检测功能并不仅仅只能应用与二进制重排,其本质是对于函数级、基本块级或代码边缘级插入回调,我们可以基于这一原理更灵活的实现所需要的功能。
1351 0
|
安全 编译器 数据库
IDA静态逆向分析工具使用详解
IDA静态逆向分析工具
447 0
|
Java Android开发
Eclipse配置反编译插件jadclipse(内容有部分纠正)
Eclipse配置反编译插件jadclipse(内容有部分纠正) Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的。不过因为是控制台运行,所以用起来不太方便。
1614 0