起序:在程序启动的过程中,程序的 入口界面
以及 入口点
的函数执行时机是非常早的。要调试此类的函数,是通过 【逆向】JEB 动态调试之普通模式调试 smali 代码 这个普通模式,是调试不了的。比如 onCreate()
方法是在我们打开界面的时候就已经完成了调用这个函数。根本调试不了 onCreate()
以及更早的。
调试模式 | 文章 |
---|---|
普通模式 | 【逆向】JEB 动态调试之普通模式调试 smali 代码 |
调试模式 | 【逆向】JEB 动态调试之调试模式调试 smali 代码 |
一、软件环境
- 模拟器:雷电模拟器
- 反编译 APK 工具:JEB 2.2.7
- 软件:注册机
软件下载:百度网盘 提取码:ybcf
二、安装 APK
三、开启
因为我电脑上已经有了一个
SDK
,所以我把雷电模拟器3
配置好环境变量后,我把雷电模拟器3
目录下的adb.exe
复制了一份,更改为adbld3.exe
文件,为了是不与我原来的SDK
在命令上的冲突。
# 查看当前 PC 与手机(模拟器)连接的数量
adb devices
# am start -D -n 包名/启动类路径
adb shell am start -D -n com.star.zhuceji/com.star.zhuceji.MainActivity
测试模拟器上显示。不要对这个界面进行操作。
三、反编译 APK
四、调试
1、选择调试位置
这里选择
onCreate()
方法,Ctrl+B
设置调试断点。
2、Debugger
Debugger
→Start
点击确定。
这里可以看出有一个模拟器
emulator-5562
存在。并搜索进程(进程就是包名,可以在AndroidManifest.xml
内找到。),然后点击Attach
按钮。
点击
Attach
之后。可以看到JEB
中的smali
代码中停在了灰色处
,然后就可以开始调试了。
此时
模拟器
中的界面。可知这里断在了onCreate()
那里。
五、来个动态图吧
我赶脚,视频比看文章更快理解,就简单做了个动态图。
如果对您有帮助,点个赞再走吧。