Android逆向4-动态调试&Log插桩

动调

动态调试步骤

1 修改权限

方法一:在AndroidManifest.xml里添加可调试权限

1
android:debuggable="true"

image-20250118215421179

方法二:XappDebug模块hook对应的app

项目地址:XappDebug

image-20250118223405106

右上角设置showa already debug

image-20250118223608235

方法三:Magisk命令(重启失效)

1
2
3
4
5
6
7
1.  adb shell #adb进入命令行模式

2. su #切换至超级用户

3. magisk resetprop ro.debuggable 1

4. stop;start; #一定要通过该方式重启

方法四:刷入MagiskHide Props Config模块(永久有效,但我这两台手机都不行,哭死,呜呜呜)

https://www.bilibili.com/video/BV1hg411q7dj/?spm_id_from=333.1391.0.0&vd_source=d76ad0aadca055336653cd966075f064

一般来说,在4选项中如果有ro.debuggable那就直接修改,没有的话就选5

image-20250118215613123

修改ro.debuggable的值为1

2 端口转发以及开启adb权限

版本号点击七次开启开发者模式并开启adb调试权限

夜神模拟器:adb connect 127.0.0.1:62001

image-20250118215814548

image-20250118215905279

image-20250118220317413

image-20250118220402551

进去之后右键解析成java

image-20250118220701704

image-20250118220738637

3 下断点

ctrl+b下断点

image-20250118221130986

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,输入命令

image-20250118221704028

image-20250118222021854

image-20250118222127991

image-20250118222236962

5 Jeb附加调试进程

快捷键:

  • F6进入方法
  • F7从方法中跳出来
  • R运行到光标处

Log插桩

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

image-20250118224800408

image-20250118224834716

image-20250118225010845

image-20250118225127626

调用命令

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

image-20250118225210288

先不启动

LSPosed要勾选

LSPosed 是一个基于 XposedEdXposed 的改良框架,旨在提供更稳定、高效和易用的 Hook 框架。它允许用户在不修改任何应用和系统组件的情况下,实现对系统和应用程序行为的修改。

image-20250118225306706

image-20250118225407161

image-20250118225448764

image-20250118225558122

作业:

image-20250119224138433

方法一

定位无效用户名

image-20250119224351453

image-20250119224541975

1
adb shell am start -D -n com.droider.crackme0201/.ui.MainActivity

image-20250119230733849

image-20250119232150259

22b6a50594012247

image-20250119232249662

方法二

log插装

image-20250119232812277

这样不行,得搜十六进制的0x7F05000B

image-20250119232909851

1
invoke-static {v6}, Lcom/mtools/LogUtils;->v(Ljava/lang/Object;)V

LSPosed 选中程序,算法助手开启应用总开关、Log捕获不在赘述

运行后随便输入用户名和注册码,翻看日志,可以看到用户名对应正确的注册码

image-20250119233237775