
学习吾爱破解论坛正己的《安卓逆向这档事》的笔记,视频和配套工具可以去课程主页获取:https://www.52pojie.cn/thread-1714727-1-1.html。
工具
- 雷电模拟器
- 教程Demo
- MT管理器/NP管理器
- jeb
- XappDebug
动态调试环境配置
安装 jeb
配置 Java 环境
- 下载 jdk 并安装
- 配置环境变量
这里我之前装过,而且网上教程很多,就不演示了。
正己给的 Java 环境是 11 的,需要比这个版本高的,正好我之前装的是 19。
在命令行输入 java --version
测试一下:
安装
解压了就行了,注册啥的正己都弄好了。
动态调试
获取 debug 权限
法一:修改 AndroidManifest.xml
在 AndroidManifest.xml 的 application 标签里添加:
android:debuggable="true"
法二:XAppDebug 模块 hook 对应的 app
XAppDebug 项目地址:https://github.com/Palatis/XAppDebug
启用模块之后勾选系统框架(需要重启)和要进行 debug 的 app 即可。
法三:Magisk 命令(重启会失效)
通过 adb 进入命令行或者用 MT 管理器的终端模拟器都可以。
- adb 进入命令行(在你电脑终端里输):
adb shell
- MT 管理器的终端模拟器:
然后依次输入下面的命令就行了:
# 切换至超级用户
su
# 启用 debug
magisk resetprop ro.debuggable 1
# 一定要通过该方式重启
stop;start;
法四:刷入 MagiskHide Props Config 模块(永久有效)
下载 MagiskHide Props Config:https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/releases
在 Magisk 里找到模块,点击盒子按钮选择刚刚下载的 zip 文件即可开始刷入。
出现 Done 说明刷入成功,重启设备。
进入终端,输入 props
命令,会出现一个菜单,选择Edit MagiskHide props (active)
,也就是输入 4
:
进入新菜单,找到 ro.debuggable
选项,并选择(我这里显示 enabled
,表示已经是 1
了,就不用改了,否则需要改),将 ro.debuggable
的值设为 1
:
修改完后重启设备,然后使用以下命令验证 ro.debuggable
是否已经改为 1
:
getprop ro.debuggable
端口转发以及开启 adb 调试权限
端口转发
雷电模拟器默认开启端口转发,其他模拟器需要用 adb 连一下,类似下面的命令:
adb connect 127.0.0.1:<port>
这个端口号不同模拟器不同,具体可以去查一下。
开启 adb 调试权限
进入开发者模式
按”设置->关于本机->版本号“顺序找到”版本号“,点击 7 次进入开发者模式。
开启 USB 调试
按”设置->系统->高级->开发者选项“顺序进入”开发者选项“,找到”USB 调试“选项并开启:
下断点
在对应 smali 代码处 Ctrl-B
下断点
debug 模式启动
命令行输入以下命令:
adb shell am start -D -n <package_name>/<activity_name>
adb
:Android Debug Bridge 的缩写,它是一个用于在开发者计算机和 Android 设备之间建立通信的工具。shell
:指示 adb 命令将要在设备的命令行 shell 中运行。am
:代表活动管理器(Activity Manager),它是一个在 Android 设备上跟踪和管理应用程序活动的系统服务。start
:指示活动管理器启动一个新的应用程序或活动。-D
:指示在启动应用程序时要清除先前的任务和栈,以便该应用程序成为新任务的开始。-n /
:指示要启动的应用程序和特定的 activity。- `` 是应用程序的包名。
- `` 是要启动的 activity 的名称。
比如这里要启动的名为 "com.zj.wuaipojie" 的应用程序中的 ".ui.MainActivity" 活动,命令将如下所示:
adb shell am start -D -n com.zj.wuaipojie/.ui.MainActivity
这里不知道是我看视频看漏了还是怎么的,我的环境里好像没有
adb
,所以这里我去另外安装了一下。
然后模拟器会打开对应应用并等待调试器启动:
Jeb附加调试进程
在工具栏找到“调试器”一栏的”开始“并点击,或者通过菜单栏的”调试器->开始“,唤出“附加调试”菜单,然后找到对应的进程选择”附上“即可开始调试。
接着在 app 中触发刚刚下断点处的逻辑,可以看到代码停在断点处了。此时就可以查看各种调试信息了,这里主要关注局部变量的信息:
快捷键:
Ctrl-F6
:进入方法F6
:跳过方法F7
:跳出方法Ctrl-R
:运行到光标位置
这里在最后相等比较前的函数看到一个 base64 的值,复制下来放到 flag{}
之间就是密钥了。
我的密钥正确了:
这里调试的时候发现 v0 的值(也就是最后函数返回值赋给的变量)没有出现在局部变量里,正己说是因为模拟器的问题,真机就会有这部分值。
本文链接:https://linuxstory.org/android-reverse-dynamic-debugging-guide/
原文链接:https://www.52pojie.cn/thread-1714727-1-1.html
Linux Story 整理,对原文有删节、补充;转载请注明,否则将追究相关责任!
nordvpn special coupon code 2025 350fairfax
Hello Dear, are you truly visiting this website regularly, if so afterward you will definitely take good know-how.
Thank you for the good writeup. It in fact was a amusement account it.
Look advanced to more added agreeable from you!
However, how can we communicate?
Also visit my homepage; nordvpn coupons inspiresensation (wall.sh)
Wow, fantastic blog layout! How long have you been blogging for?
you made blogging look easy. The overall look of your web site is great, as well as the content!
Stop by my webpage … nordvpn coupons inspiresensation
I am in fact grateful to the owner of this site who has
shared this enormous post at at this place.
Here is my blog: nordvpn coupons inspiresensation – https://t.co/5gaT0Nh9CJ,
My family every time say that I am killing my time here at net, however I
know I am getting knowledge daily by reading such nice posts.
my web-site :: Nordvpn coupons Inspiresensation