聲明:本教程僅用作學習用途,請勿違反學校規定!
思路選擇
思路一:逆向 \(apk\),修改關鍵邏輯,重新打包簽名。
失敗原因:代碼邏輯過於復雜,完美重簽名難以實現。(\(APP\) 使用 \(uni\) - \(app\) 編寫,原始代碼為 \(JavaScript\),代碼層有多層轉換,且代碼經過混淆,難以控制。經過我的努力,只實現了隨地簽到的功能,跑步自動生成路線的功能雖然寫出,但最終導致程序崩潰,可能是簽名不一致的原因)
思路二:抓包,通過觀察數據包內容,模仿出相同格式,偽裝成 \(APP\) 進行發包。
准備工作
- 一台 \(Root\) 過的手機
- 一台裝有 \(Burp\) \(Suite\) 的電腦
- 最好有 \(VPN\)(用來下載 \(Drony\))
解決方案
電腦端使用 \(Burp\) \(Suite\) 開啟中間人代理進行抓包。手機端將 \(Burp\) 證書導入系統證書,並使用 \(Drony\) 開啟全局代理。
電腦端操作
Burp Suite 開啟代理
打開 \(Burp\) \(Suite\),進入 \(Proxy\) - \(Options\),在 \(Proxy\) \(Listeners\) 中點擊 \(Add\),端口號填 \(8080\),地址填當前局域網(或公網)的地址。
下載證書
在 \(IE\) 中開啟代理,地址端口同上。注意不要勾選“對於本地地址不使用代理服務器”。完成后在瀏覽器中打開 http://burp/
,將證書下載到本地。然后最好將 \(IE\) 代理關閉。
再在電腦上安裝證書,證書存儲時選擇“將所有的證書都放入下列存儲”,並選擇“受信任的根證書頒發機構”。
並將證書文件導入至手機。(證書后綴名改為 \(.cer\))
手機端操作
導入證書
在設置中將剛剛保存的 \(CA\) 證書導入。在 \(Magisk\) 中安裝 \(Move\) \(Certificates\) 插件,開啟插件並重啟手機。重啟后若在系統證書而不是用戶證書中看到該證書則說明成功。
安裝並開啟 Drony
在 \(Play\) 商店中下載最新版 \(Drony\),然后根據 https://www.cnblogs.com/lulianqi/p/11380794.html
中的教程自行配置。
分析 & 破解數據包
在 \(Burp\) \(Suite\) 中進入 \(Proxy\) - \(HTTP\) \(history\) 即可瀏覽所有被抓的包。請自行分析並使用 \(Python\) 中的 \(Requests\) 模塊進行發包。