评估分析
在抓包前,建议一定要先分析。
有网页端抓网页端、有移动端抓移动端、有客户端抓客户端,最后的选择才是App。
举个例子。针对腾讯视频考虑顺序:
网页端:
https://v.qq.com/
移动端:
https://m.v.qq.com/index.html
客户端:通过charles设置代理抓取
App
腾讯自己就有做应用加固的,旗下产品自然很难被编译
![](https://i-blog.csdnimg.cn/blog_migrate/b592e67b107bf1a290c2f842a2ed7efb.png)
如果你能反编译腾讯旗下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我用的比较多,简单演示下。
主要是使用搜索功能,搜索前需要先花很多时间反编译。
![](https://i-blog.csdnimg.cn/blog_migrate/3914ab568df809d6797a47243310a5c1.png)
如果对Appnium感兴趣,可以看看 Appium环境搭建超详细教程