安卓模拟器+Anyproxy代理抓包分析微信客户端解决方案

优采云 发布时间: 2021-08-01 01:43

  

安卓模拟器+Anyproxy代理抓包分析微信客户端解决方案

  

  一、先说整体方案

  1、使用搜狗公众号文章的采集,这样得到的文章URL是一个带有时间戳的临时链接。

  

  2、通过Android模拟器+Anyproxy代理,在微信客户端打开临时链接时,捕获分析微信客户端及其服务器请求的协议内容,获取永久链接。

  

  3、通过按钮向导模拟或Python脚本发送微信账号上的临时链接内容。只有在安卓模拟器的微信账号上发送内容时,Anyproxy代理才能抓取到相关的包内容。

  二、说说具体的解决方法,主要是第二点

  1、使用搜狗公众号文章的采集,这样得到的文章URL是一个带有时间戳的临时链接。将此作为数据采集时,经常会出现“请输入验证码”。我尝试使用IP代理池,但我还没有找到可以避免或解决此问题的IP代理服务器。我的处理方式是使用动态IP VPS服务来解决。具体步骤我就不细说了,因为这不是文章的重点。

  

  2、使用Android模拟器+Anyproxy代理,在微信客户端打开临时链接时,对微信客户端及其服务端请求的协议内容进行抓取分析,获取永久链接。我用的是win10系统。

  1)微信客户端:下载安卓模拟器,并在模拟器上安装微信应用。

  2)A微信个人账号:采集内容不仅需要微信客户端,还需要一个专门发送临时链接的微信个人账号。

  3)Local 代理服务器系统:采用的方法是通过Anyproxy代理服务器将临时链接和永久链接发送到我们自己的服务器进行替换。具体安装方法后面会详细介绍。

  我使用 Anyproxy。这个软件的特点是可以获取https链接的内容。 2016年初,微信公众号和微信文章开始使用https链接。而 Anyproxy 可以通过修改规则向服务器发送请求。下面将介绍安装和配置过程。

  1、Install NodeJS

  2、在命令行或终端运行 npm install -g anyproxy

  3、生成RootCA,https需要这个证书:运行命令anyproxy --root

  4、启动anyproxy运行命令:打开win+R,输入anyproxy -i;参数-i表示解析HTTPS;

  5、安装证书,在安卓模拟器中安装证书:启动anyproxy,打开浏览器:8002/fetchCrtFile,即可得到rootCA.crt文件

  6、Set proxy:安卓模拟器的代理服务器地址是wifi链接的网关。您可以通过将 dhcp 设置为静态来查看网关地址。阅读后不要忘记将其设置为自动。代理服务器的默认端口为 8001。

  

  如何查看是否成功:在模拟器上打开微信,点击任意文章,在终端可以看到滚动的响应码。如果没有出现,请检查手机的代理设置是否正确。下面我的截图是打开浏览器地址:8002查看anyproxy的web界面。

  

  我在微信端打开了文章的临时链接。通过协议分析,我们可以知道永久链接被重定向到了302的位置。

  4)修改Anyproxy文件rule_default.js,获取抓包中的协议内容。

  rule_default.js文件在*\node_modules\anyproxy\lib\rule_default.js,找到replaceServerResDataAsync:function(req,res,serverResData,callback)函数,修改函数内容,劫持需要的内容因为我只需要劫持返回的code内容为302,所以只在statusCode==302时回调。

  

  找到replaceResponseHeader:function(req,res,header)函数,修改函数内容。获取永久链接,调用我在服务器上写的http接口。我的界面只有两个参数:临时链接和永久链接。在临时链接的基础上添加永久链接。

  

  好了,到此,使用Anyproxy将临时链接转换为永久链接的功能介绍完毕。

  PS:使用Anyproxy直接获取微信公众号的所有文章(永久链接),包括点赞数、阅读数等信息。在这种情况下,您不需要使用搜狗。但是这里会有一些问题。微信这样做会屏蔽你的微信个人账号,所以我用搜狗爬山文章(急),然后在临时链接的有效期内用Anyproxy更新为永久链接。

  3、 使用按钮精灵模拟点击微信APP上的临时链接,也可以通过python脚本模拟。我正在写这篇文章,完成后我会更新它。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线