静态分析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日志并进行多维度分析。
目录
相关文章
|
安全 Android开发
反编译之利用AndroidStudio动态调试smali源码2
反编译之利用AndroidStudio动态调试smali源码
|
Java Android开发
反编译之利用AndroidStudio动态调试smali源码1
反编译之利用AndroidStudio动态调试smali源码
objdump反编译代码
objdump是显示object文件的详细信息的工具
268 0
|
XML 数据安全/隐私保护 数据格式
反编译代码遇到的问题
1、所有变量前都强制转成Object,这样导致有些int形的值变成了string,特别是枚举值Enum; 2\ 枚举值使用的时候,如果是int,需要强制转换 (int)query.SaleStatus。
1068 0
《编译与反编译技术实战 》一1.9 动态分析工具TEMU
TEMU是动态分析工具BitBlaze的一个组件,是一个基于系统仿真器QEMU开发的动态二进制分析工具,以QEMU为基础运行一个完整的系统(包括操作系统和应用程序),并对二进制代码的执行进行跟踪和分析。
2034 0