評估分析
在抓包前,建議一定要先分析。
有網頁端抓網頁端、有移動端抓移動端、有客戶端抓客戶端,最後的選擇纔是App。
舉個例子。針對騰訊視頻考慮順序:
- 網頁端:
https://v.qq.com/
- 移動端:
https://m.v.qq.com/index.html
- 客戶端:通過charles設置代理抓取
- App
騰訊自己就有做應用加固的,旗下產品自然很難被編譯
如果你能反編譯騰訊旗下App,請告訴我方法
如何抓包
在知乎上也有這個問題 如何在 Android 手機上實現抓包?
但是我覺得不夠全,首先對於一般的HTTP和HTTPS協議,通過最基本的Fiddler和Charles就可以抓包,具體方法請Google。需要保證兩點:App走代理,證書被信任。
有些應用不走操作系統的 HTTP 代理,直接走 TCP 協議,無法使用 HTTP 代理抓包。雖然 Charles 支持 SOCKS 代理,但無法分析 TCP 包。這就需要祭出大殺器 tcpdump 和 Wireshark 。
說一下DNS抓包,。這個網上基本找不到資料,這也是大佬教我的,詳細步驟在博客裏,感興趣自行翻閱。
還有一個比較出名的是mitmproxy,沒怎麼用過。
最後,蘋果公司有做一個比較詳細的抓包說明
https://developer.apple.com/library/archive/qa/qa1176/_index.html
如何逆向
逆向一直是一個很大的話題,而且還專門有逆向工程師這個職位,可見其中水之深。
對於爬蟲,簡單瞭解即可。這裏需要三個逆向工具:
- Apktool:獲取資源文件和smail代碼
- dex2jar:將dex文件轉換成jar文件
- JD-GUI:查看到反編譯後的dex的代碼
最後看到的是JAVA代碼,所以能看懂JAVA是必要能力。
JD-GUI我用的比較多,簡單演示下。
主要是使用搜索功能,搜索前需要先花很多時間反編譯。
如果對Appnium感興趣,可以看看 Appium環境搭建超詳細教程