静态分析Smali添加日志

简介: 如何动手实现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命令之后可以加入。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
Shell API Android开发
android queries属性
android queries属性
1639 2
|
机器学习/深度学习 SQL 数据可视化
数据分享|数据探索电商平台用户行为流失可视化分析
数据分享|数据探索电商平台用户行为流失可视化分析
|
存储 Web App开发 人工智能
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
1534 1
|
10月前
|
Web App开发 传感器 物联网
WebGL 数字孪生项目开发
WebGL是实现网页端数字孪生的核心技术,无需插件即可调用GPU进行高性能3D渲染。项目开发多采用Three.js、Cesium等引擎,结合glTF模型、PBR材质与LOD优化,通过实例化渲染、纹理压缩与遮挡剔除保障性能。验收需关注帧率、加载速度、显存占用及数据延迟,确保跨端稳定运行。#webgl开发 #数字孪生
|
JSON API 数据格式
深入浅出:使用Python实现一个简单的RESTful API
【8月更文挑战第51天】本文将引导读者理解RESTful API的基本原理,并通过一个简易的实例展示如何利用Python的Flask框架快速搭建一个RESTful服务。文章以通俗易懂的语言,结合代码示例,逐步讲解API的设计、实现和测试过程,旨在帮助初学者掌握RESTful API的开发方法。
1032 11
|
机器学习/深度学习 算法 数据挖掘
介绍一下如何处理数据不平衡的问题
介绍一下如何处理数据不平衡的问题
1477 1
|
前端开发 JavaScript 数据库
在 React 项目中 Editable Table 的实现
由于我们是把 state 存放在父组件的,每次请求会造成 table 进行 render 一遍,如果再加入 loading 等状态,render 次数会更多。Table 组件默认情况下没有对 rerender 行为做优化,父组件更新,如果 columns 中的提供了自定义 render 方法, 对应的每个 Cell 都会重新 render 。 针对这种情况我们就需要进行优化,根据 shouldCellUpdate 来自定义渲染时机。 那么每个 Cell 的渲染时机应该是: 1. FormItem 增删位置变动时 2. 该 Cell 消费的对应 tableOptions 变动时 第一种情况很好判
658 1
|
存储 算法 安全
深入详解ThreadLocal
在我们日常的并发编程中,有一种神奇的机制在静悄悄地为我们解决着各种看似棘手的问题,它就是 ThreadLocal 。
22155 9
深入详解ThreadLocal
|
开发者 iOS开发
no identity found Command CodeSign failed with a nonzero exit code
no identity found Command CodeSign failed with a nonzero exit code
1021 0
|
Java Android开发
反编译之利用AndroidStudio动态调试smali源码1
反编译之利用AndroidStudio动态调试smali源码
1511 0