環境准備:
網易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
選擇一個app:
然后得反編譯找到具體一些包名,進行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代碼