Android逆向4-动态调试&Log插桩
Android逆向4-动态调试&Log插桩
动调
动态调试步骤
1 修改权限
方法一:在AndroidManifest.xml里添加可调试权限
1 | android:debuggable="true" |
方法二:XappDebug模块hook对应的app
项目地址:XappDebug
右上角设置showa already debug
方法三:Magisk命令(重启失效)
1 | 1. adb shell #adb进入命令行模式 |
方法四:刷入MagiskHide Props Config模块(永久有效,但我这两台手机都不行,哭死,呜呜呜)
一般来说,在4选项中如果有ro.debuggable那就直接修改,没有的话就选5
修改ro.debuggable的值为1
2 端口转发以及开启adb权限
版本号点击七次开启开发者模式并开启adb调试权限
夜神模拟器:adb connect 127.0.0.1:62001
进去之后右键解析成java
3 下断点
ctrl+b下断点
4 debug模式启动
1 | adb shell am start -D -n com.zj.wuaipojie/.ui.MainActivity |
adb shell am start -D -n
adb shell am start -D -n 包名/类名
am start -n 表示启动一个activity
am start -D 表示将应用设置为可调试模式
打开CMD,输入命令
5 Jeb附加调试进程
快捷键:
- F6进入方法
- F7从方法中跳出来
- R运行到光标处
Log插桩
定义:Log插桩指的是反编译APK文件时,在对应的smali文件里,添加相应的smali代码,将程序中的关键信息,以log日志的形式进行输出。
调用命令
1 | invoke-static {对应寄存器}, Lcom/mtools/LogUtils;->v(Ljava/lang/Object;)V |
先不启动
LSPosed要勾选
LSPosed 是一个基于 Xposed 和 EdXposed 的改良框架,旨在提供更稳定、高效和易用的 Hook 框架。它允许用户在不修改任何应用和系统组件的情况下,实现对系统和应用程序行为的修改。
作业:
方法一
定位无效用户名
1 | adb shell am start -D -n com.droider.crackme0201/.ui.MainActivity |
22b6a50594012247
方法二
log插装
这样不行,得搜十六进制的0x7F05000B
1 | invoke-static {v6}, Lcom/mtools/LogUtils;->v(Ljava/lang/Object;)V |
LSPosed 选中程序,算法助手开启应用总开关、Log捕获不在赘述
运行后随便输入用户名和注册码,翻看日志,可以看到用户名对应正确的注册码