吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1100|回复: 6
收起左侧

[Android 分享] 基于《安卓逆向这档事》其五动态调试与Log插桩

  [复制链接]
sxqww 发表于 2025-1-24 20:22

描述

来源于吾爱破解论坛正己大佬的《安卓逆向这档事》五、1000-7=?&动态调试&Log插桩,根据大佬的技术贴,个人的学习过程


资源链接

  1. 工具: https://pan.baidu.com/s/1k4j_XJ3aESa48ZT_eL9VyA?pwd=52pj 提取码: 52pj
  2. 视频: 暂无(后续会把链接放到评论区,也可以从上个文章的视频链接观看合集
  3. 《安卓逆向这档事》五动态调试&Log插桩 https://www.52pojie.cn/thread-1714727-1-1.html

    工具

  4. 教程 Demo
  5. MT 管理器
  6. 核心破解器
  7. adb
  8. XappDebug
  9. 算法助手
  10. 雷电模拟器

    课程任务

  11. 完成关卡四

    实现过程

    前情提要

本次需要完成正己大佬的 教程 Dome 的第四关
image.png|300


本次需要提前配置完成的有 java的环境配置adb的环境配置debug的权限开启log日志插庄

配置 java 环境
安装 java

双击安装包,下一步,点击更改安装地址
image.png|300
点击 (1) 然后点击 (2) 切换到其他磁盘,选择相应的位置点击 (3) 创建文件夹
image.png|300
image.png|300
image.png|300


配置环境变量

在配置环境变量之前,先认识一下,下面三个变量的区别

环境变量 含义 作用
JAVA_HOME 指向JDK的安装目录 帮助系统和其他Java程序找到JDK的安装位置,方便配置其他Java相关环境变量,如Path。
path 包含系统可执行文件路径的环境变量 使系统在任何路径下都能识别并找到Java命令,如java、javac等。
classpath Java虚拟机搜索类和包的位置 指定Java虚拟机查找用户自定义类和包的路径,确保java命令能识别到所需的类。

配置 JAVA_HOME

首先,复制 java的安装路径 打开设置  win+i (快捷键)搜索 环境变量
image.png|300
image.png|300
点击 新建 变量名 JAVAjava的安装路径
image.png|300
image.png|300


配置 path

同上面操作,不过新建对象变成编辑 Path
image.png|300
点击新建,粘贴 {java的安装路径}\bin 并上移到最上面
image.png|300


配置 Classpath

略,我也不知道我需要啥类,目前就先不配置了


验证配置完成

win+r (快捷键) 打开运行窗口,输入 cmd
image.png|300
输入 java -version 查看 java 的版本信息,如果有则配置完成
image.png|300


配置 adb 环境

adb 又称安卓调试桥,可以让用户在电脑上操作手机,本次动态调控需要用到 adb,我会在资源包中加上 adb 文件,只需要你将其拖到自己文件夹下,进行下面的环境配置
image.png|300


复制 adb.exe 所在文件路径,打开环境配置,编辑 Path,值 adb.exe所在文件的路径
image.png|300


验证 adb 配置完成 win+R (快捷键) 输入 cmd
输入命令 adb version 出现版本信息,则配置成功
image.png|300

[!NOTE] 注意

部分人的雷电模拟器使用的是绿色版本,版本会比较低,所以部分在使用 jeb 进行动态调试的时候找不到进程有部分原因是雷电模拟器的 adb. exe 和系统配置的 adb. exe 版本不一样。


jeb 进行 debug 调试的过程中很卡

当你出现这个问题的时候,可以来看一下,打开 jeb 文件,不管你用什么方法,修改文件名也好,打开 jeb_wincon.bat 文件,注意!不要双击,他是 jeb 的启动文件
image.png|300


注意第 (7) 行圈起来的代码 -Xss4M -Xmx800M 代表最小分配4Mb,最大分配800Mb,如果你内存够的话,也可以最大4G,反正我的4G 太卡
image.png|300


开启 debug 权限

根据正己大佬的文章,开启 debug 权限的方法一共有四个分别是

  1. 修改 AndroidManifest. xml
  2. 使用XappDebug模块
  3. Magisk命令(重启失效)
  4. 刷入 MagiskHide Props Config 模块(永久有效)
    方法一:修改 AndroidManifest. xml

使用 MT 管理器\NP 管理器修改 AndroidManifest.xml 文件添加下面命令并保存安装

android:debuggable="true"

image.png|300|300


方法二:使用 XappDebug 模块

首先,需要安装 XappDebug,并在 LSP 中启用
image.png|300
启用模块并勾选系统框架,最后,选择右上角的×重启虚拟机
image.png|300


打开 XappDebug,勾选测试软件,即可
image.png|300


log 日志插桩

这个方法比较快捷,不需要电脑,配置 java 环境什么的,在模拟器内部就可以了

定义:Log 插桩指的是反编译 APK 文件时,在对应的 smali 文件里,添加相应的 smali 代码,将程序中的关键信息,以 log 日志的形式进行输出。

实施过程

日志插桩.dex 文件放入雷电模拟器的共享文件夹
image.png|600

在 MT 管理器中,将日志插桩拖入,软件环境,并改名为 classes2.dex
image.png|300


对原有的 dex 文件,使用 dex++编辑器,搜索关键词
image.png|300
找到最后,反应参数的位置
image.png|400
image.png|400


插入命令

invoke-static {对应寄存器}, Lcom/mtools/LogUtils;->v(Ljava/lang/Object;)V

保存,退出并安装
image.png|300


在算法助手中,打开 log 监听 然后启动程序
image.png|300


完成的对程序运行一遍,然后关闭程序,会自动回到算法助手,打开日志
image.png|300
image.png|300
image.png|300


实施过程

任务一:教程 Dome

第四关任务是输入正确密钥
image.png|300


启动 jeb 软件

将打开 jeb 文件夹双击 jeb_wincon.bat 文件
image.png|500


目前有两种方法,一种是直接将调试软件拖入 jeb 中,一种是在 jeb 中点击右上角 文件 -> 打开文件
image.png|500


然后一直确定就可以了
image.png|300


点击 Quick Search,搜索关键词 密钥,等待搜索结果,点击搜索结果
image.png|300


这是一份 smali 格式的代码,可以利用 MT 管理器自带的 smali指令查询 查找意思
image.png|600


分析代码

下面是阅读代码的过程

image.png|600

ChallengeFourth->check(String)Z, p0, p1 的意思:是在 ChallengeFourth 类里找到了一个叫 check 的方法,这个方法需要一个字符串作为输入,当你调用这个方法时,它会返回一个布尔值(true 或 false)。


点击进入 check 方法,右键,点击 解析
image.png|600

当光标在哪,解析 以后会自动跳转到对应位置
image.png|600


观察 java 代码,分析,找出对应位置
分析代码可以得到,密钥的固定格式为 flag{*******},当首字符和尾字符匹配的时候,跳转到 2A
image.png|600
image.png|600


2A
右键,解析,跳转到对应的 java

分析上下文代码意思,根据跳转跳到最后位置看看
image.png|600
image.png|600


发现在箭头指向的位置,如果是返回值,那么它的上面 Base64Utils 可以返回对应的值
1000


将光标至于箭头位置,ctrl+b (快捷键) 添加断点
image.png|600


开启 adb 调试

win+R (快捷键)输入 cmd 命令

adb shell am start -D -n com.zj.wuaipojie/.ui.MainActivity

image.png|600

com.zj.wuaipojie/.ui.MainActivity 实际上就是 Activity,只不过在包名后面加上了 /, 不同的 Activity,进入调试界面后会自动跳转该 Activity

[!NOTE] 注意

  1. 部分人输入完命令后,模拟器会自动重启,可能会卡住,手动重启再输入命令即可
  2. 如果没有进入这个界面,卡在中间,再输入一次命令即可

输入命令后会进入下面这个界面
image.png|300


开启调试

回到 jeb 打开工具栏的调试按钮
image.png|600

确保设备,进程都存在,然后点击 附上
image.png|600


将新出现的界面调整为 VM/局部变量
image.png|600


回到模拟器,等待进入程序
image.png|300


在密钥区输入 flag{***}, 点击验证,没有任何反应是正常的,如果提示密钥错误,那么固定格式是错的,点击完验证,回到 jeb
image.png|300


首先点击 进入,进入 encodeToString 方法中,然后点击 跳过 移动到 p1
image.png|800
image.png|800


再点击 进入,移动到返回值,会观察到局部变量已经出现了一个字符串,复制字符串,这个就是密钥
image.png|800

验证结果

image.png|300


总结

我想问问还有没有其他的动态调试软件,jeb 把我卡飞了

免费评分

参与人数 6吾爱币 +11 热心值 +6 收起 理由
Wangweikang99 + 1 + 1 谢谢@Thanks!
leger1210 + 1 用心讨论,共获提升!
Fanqim + 1 + 1 我很赞同!
allspark + 1 + 1 用心讨论,共获提升!
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
woyucheng + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zishu111 发表于 2025-1-24 20:52
大佬厉害
正己 发表于 2025-1-24 23:01
 楼主| sxqww 发表于 2025-1-25 00:25
twl288 发表于 2025-1-25 06:44
学习委员,优秀
lc2006 发表于 2025-1-25 15:36
基于《安卓逆向这档事》其五动态调试与Log插桩 ,值得我们学习
chayu520 发表于 2025-1-26 09:07
大佬好厉害
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-2-18 01:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表