环境准备:
网易Mumu安卓模拟器,里面还有adb方便调试: http://mumu.163.com/baidu/
adb: brew cask install android-platform-tools
动态调试
adb连接,mac下网易mumu端口是5555,windows下是7555
windows下:
adb connect 127.0.0.1:7555
adb shell
mac下:
adb shell
首先通过字符串搜索,定位到某个位置,command + b下断点。
在mumu上运行apk,然后attach
然后随便点一点能触发到断点的功能。
f6是 单步调试
command + f6是 步入调试
step out在debugger上
如果有两个断点,想迅速调到第二个断点就点击run
这里开始都是int类型,改为string类型就会显示变量的值,这样就可以获取到关键的一些信息。
Frida Hook
也可以利用frida hook一些点,然后能快速得拿到数据。
https://github.com/lyxhh/lxhToolHTTPDecrypt
环境准备:
1、运行frida-server
wget https://github.com/frida/frida/releases/download/12.5.2/frida-server-12.5.2-android-x86.xz
xz -d frida-server-12.5.2-android-x86.xz
adb push frida-server-12.5.2-android-x86 /data/local/tmp/
adb shell
cd /data/local/tmp/
chmod 777 frida-server-12.5.2-android-x86
./frida-server-12.5.2-android-x86
2、python环境,frida安装有点慢
pip3 install colorlog flask flask_socketio requests frida
3、go
python3 app.py
转发端口:
adb forward tcp:27042 tcp:27042
然后得反编译找到具体一些包名,进行hook后随便点点触发到包,就可以看到具体的一些调用情况,比如调用参数以及调用栈。
反编译源码
1、jeb
jeb加载apk后按Q既可反编译
2、apktools
java -jar apktool_2.3.3.jar d "1.apk" -o out -f
3、dex2jar
解压apk,得到classes.dex
d2j-dex2jar.bat classes.dex
既可得到一个jar,再用jd-gui既可反编译java代码