背景
晚上正准备下班,突然看到一条老婆发过来的微信,帮我下载里面的视频!
内心:下载视频不是有手就行么~
点开链接看了一下,发现视频设置了权限,没法直接在手机上下载!作为一个程序猿,这种事情还能难倒我?
复制链接到浏览器打开,哦豁
准备通过审查元素的方式找了一下,发现并没有找到,通过容器 ID 初步看了一下,里面有些条件判断,只有在微信环境才会发起视频的请求,我 NM!
赶紧回条消息“这个稍微有点麻烦,等一下”!
然后背着电脑又回到了工位~
过程
害,作为一个程序员,这种事不是小 Case 么?抓下包就行了,嘿嘿
打开电脑才发现,我电脑上竟然没有抓包工具,刚换不久的电脑~,而且公司提供的抓包工具需要审批,晚上因为私事 DING 领导不合适!
于是赶紧在群里问同事,有没有人之前开发过微信小程序,准备通过 WebView 的方式操作一下,刚好有个已经下班在家的同事,回复之前做过,大概半小时后反馈方案不得行!但是还是把视频发我了。
好奇的问下了下是不是通过微信小程序提取的(我之前也经常用去水印小程序,基本上能猜到),自己也去搜了一下,结果发现是收费的,我去!作为一个程序员,你竟然想在这上面赚我钱,那必不可能!
当我把视频发给老婆的时候,她告诉我她已经在 B 站上下载了一个相同的,奇耻大辱啊!忍不了!
抓包
工具安装
Charles 是一个 HTTP 代理服务器、HTTP 监视器、反转代理服务器,当浏览器连接 Charles 的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。使开发人员能够查看他们的计算机与互联网之间的所有HTTP 和 SSL/HTTPS 流量。这包括请求、响应和HTTP头部(其中包含 Cookie 和缓存信息)
推荐 Charles,安装过程不展示,官网下载即可
Web 抓包
Charles Web 抓包非常简单,启动后会自动与浏览器设置成代理,不需要进行过多的设置,我们直接访问 Charles 官网就能看到对应的网络信息
是不是 So Easy?但当你访问我们最开始的公众号地址时,会发现请求是 unknown,原因是 HTTPS 协议是需要证书的
接下来我们安装一下对应的证书
Help
> SSL Proxying
> Install Charles Root Certificate
,一路直下,如果遇到受信问题,记得切换为信任模式
同时我们需要设置一下代理规则:
Proxy
> SSL Proxying Setting
,勾选 Enable SSL Proxying
,添加 2 条 Location
Host: *
Port: 443
Host: *
Port: *
再次访问刚才之前的公众地址,发现一切都 OK 了,完美?
完美是不存在的,因为我们要抓取的视频依赖微信环境,我们只能下载电脑版微信或者代理到手机,当然后者更快,省去了下载的过程。
手机抓包
要赶高铁,直接上过程!
Step1: Help
>Local IP Addresses
,记住你当前的 IP 地址
Step2: Proxy
>Proxy Settings
把端口改为 8888
Step3: 手机访问 chls.pro/ssl 下载证书并安装,如果是安卓机的话,需要找到下载文件的目录,把后缀改为 crt,双击执行安装即可
Step4: 检查证书是否安装成功,这里以 VIVO 手机为例,在手机设置里面直接搜索“信任的凭据”查看即可
Step5: 代理设置,这里借用了网上的图片,不想暴露网络信息,服务器和端口改为我们上文获取的
好了,一切搞定,我们直接在手机微信里面打开对应的文章,根据对应的请求地址很快就能找到我们想要的视频,在知道路径的情况也可以使用 charles 提供的过滤功能,是不是超级简答~
老婆:微信小程序 2min 搞定的事情,你好厉害(SB)啊!
总结
Charles 如上文介绍,功能非常强大,我们只是展示了其冰山一角,这里不再展开,以交作业为目的!
如果和电脑、手机相关的(修电脑、装系统、手机卡、微信聊天记录删除了如何恢复......),你都搞定,那家庭地位一定杠杠滴