Fork me on GitHub

App爬虫思路

1
这是崔斯特的第七十五篇原创文章

App爬虫 (๑• . •๑)

看图一点点介绍

评估分析

在抓包前,建议一定要先分析。

有网页端抓网页端、有移动端抓移动端、有客户端抓客户端,最后的选择才是App。

举个例子。针对腾讯视频考虑顺序:

  1. 网页端:https://v.qq.com/
  2. 移动端:https://m.v.qq.com/index.html
  3. 客户端:通过charles设置代理抓取
  4. App

腾讯自己就有做应用加固的,旗下产品自然很难被编译

如果你能编译腾讯旗下App,请告诉我方法

如何抓包

在知乎上也有这个问题 如何在 Android 手机上实现抓包?

但是我觉得不够全,首先对于一般的HTTP和HTTPS协议,通过最基本的Fiddler和Charles就可以抓包,具体方法请Google。需要保证两点:App走代理,证书被信任。

有些应用不走操作系统的 HTTP 代理,直接走 TCP 协议,无法使用 HTTP 代理抓包。虽然 Charles 支持 SOCKS 代理,但无法分析 TCP 包。这就需要祭出大杀器 tcpdumpWireshark

说一下DNS抓包,。这个网上基本找不到资料,这也是大佬教我的,详细步骤在博客里,感兴趣自行翻阅。

还有一个比较出名的是mitmproxy,没怎么用过。

最后,苹果公司有做一个比较详细的抓包说明

https://developer.apple.com/library/archive/qa/qa1176/_index.html

如何逆向

逆向一直是一个很大的话题,而且还专门有逆向工程师这个职位,可见其中水之深。

对于爬虫,简单了解即可。这里需要三个逆向工具:

  1. Apktool:获取资源文件和smail代码
  2. dex2jar:将dex文件转换成jar文件
  3. JD-GUI:查看到反编译后的dex的代码

最后看到的是JAVA代码,所以能看懂JAVA是必要能力。

JD-GUI我用的比较多,简单演示下。

主要是使用搜索功能,搜索前需要先花很多时间反编译。