一文搞定 App 抓包

5,111 阅读2分钟

n 年前,我是搞过逆向的,搞逆向,多多少少都会涉及到 app 抓包。

app 抓包作为一项基础技能,估计很多程序员也都用过。

但很多程序员对 app 抓包的理解不同。

有人认为很简单。

有人认为很复杂。

而我觉得,

app 抓包难不难?

简不简单?

复杂不复杂?

不在于抓包本身,

而是在于要抓包的 app 。

抓包可以很简单,也可以很难,一切都在于要抓的那个 app 。

打个比方,

简单的,直接用抓包工具,Fiddler ,Charles 简单配置下证书什么的,网络上这方面的教程很多,只要跟着做,一下子就能抓出来。

难点的,你要抓包的那个 app ,刚好做了防抓包的一些措施,比如设置了只信任系统证书,那你直接抓包肯定抓不了。当然你可以使用 root 的 Android 手机,把证书安装在系统证书中,再抓包。

那如果那个 app 设置了只信任固定的证书呢?

所以啊,抓包难不难,真的在于要抓包的那个 app ,看那个 app 有没有配置防抓包措施。

下面将说下各种 app 抓包的情况,起码能让大家知道为什么有时候抓包不成功,问题出在哪。

没有防抓包措施的 app

对于没有防抓包措施的 app ,一般直接使用抓包工具就能抓取了。

一般使用的抓包工具有 Fiddler ,Charles,WireShark,都支持 HTTP/HTTPS 调试抓包的。

app 做了防抓包措施

1、一些 Android 系统只信任系统证书,或者 app 设置了只信任系统证书。

我们常用的抓包工具,需要在手机上安装证书,这些证书都是属于用户安装的证书,不是系统证书,因此这时候抓包肯定抓不到。

那这时候,我们就需要一台 root 的手机,把证书安装到系统证书中。

2、 app 检测开启代理了。

解决办法可以用逆向,比如 xposed hook 替换 checkServerTrusted 方法。

当然如果是双向校验证书,仅仅这样做还是不行的。

那你说用逆向能不能解决?

可以,但是逆向的成本太高了。

有没有什么办法不用逆向呢?

可以啊,不走系统代理,走其他代理抓包。

比如常用的 postern ,通过这个工具转发到抓包工具上。

软件下载地址:https://github.com/postern-overwal/postern-stuff

当然,就这么简单的说下,未必能很好的说明 app 抓包的流程,因此我把我的之前的笔记(关于 app 抓包的),整理成了 pdf ,近 50 页送给大家。

公众号「GitHub_Club」回复「app抓包」即可领取。