Android逆向(4):动态调试、log插桩
动态调试
动态调试是指自带的调试器跟踪自己软件的运行,可以在调试的过程中知道参数或者局部变量的值以及履清代码运行的先后顺序。多用于爆破注册码。
动态调试步骤
修改debug权限
-
在AndroidManifest.xml里添加可以调试的权限
1
android:debuggable="true"
-
XappDebug模块
-
Magisk命令
1
2
3
41. adb shell #adb进入命令行模式
2. su #切换至超级用户
3. magisk resetprop ro.debuggable 1
4. stop;start; #一定要通过该方式重启 -
MagiskHide Props Config模块
开启adb调试
模拟器直接在设置中开启
手机点击版本号多次后开启开发者模式后进入开启ADB调试
debug模式启动
1 | adb shell am start -D -n com.zj.wuaipojie/.ui.MainActivity |
- adb shell am start -D -n 包名/类名
- -n 表示启动一个activity
- -D 表示将应用设置为可调试模式
Jeb附加调试进程
接着使用Jeb附加调试进程,打上断点就可以调试了。常见快捷键:
- ^F6进入方法
- F6跳过方法
- F7从方法中跳出来
- R运行到光标处
Log插桩
定义:Log插桩指的是反编译APK文件时,在对应的smali文件里,添加相应的smali代码,将程序中的关键信息,以log日志的形式进行输出。
1 | invoke-static {对应寄存器}, Lcom/mtools/LogUtils;->v(Ljava/lang/Object;)V |