首页 运维 网络学院 查看内容

教你如何使用微信网页版”抓取“微信撤回消息

2016-9-26 19:09 1289 0

摘要: 有个高中微信搞笑群,常发一些搞笑的图片,但是发后就撤回了,一不小心就看不到了,所以就想着怎么查看撤回的图片或者文字。思路是这样的,当微信收到撤回消息的请求后,将撤回的响应包改掉,这样微信就不能撤回了, ...

有个高中微信搞笑群,常发一些搞笑的图片,但是发后就撤回了,一不小心就看不到了,所以就想着怎么查看撤回的图片或者文字。

思路是这样的,当微信收到撤回消息的请求后,将撤回的响应包改掉,这样微信就不能撤回了,微信 APP 比较难搞,就直接用微信网页版抓包修改吧。

关于微信网页版的抓包其实也比较复杂,主要是常常抓包失败,网页无法打开(支付宝、淘宝也是,貌似它们的https协议更安全,不好代理,求解),为此专门做了个vmware 虚拟机,配置是 xpsp3+ 搜狗浏览器 6.3.8.22061+fiddler v4.6.2.32002 。

打开 fiddler ,设置 https ,如图:

打开搜狗浏览器设置代理服务器:

在浏览器里访问 https://wx2.qq.com/?&lang=zh_CN ,浏览器显示如下截图,表示代理成功:

此时 fiddler 显示如下,表示抓包成功:

微信手机端扫描二维码成功登陆:

Fiddler 截获数据包如下所示:

介绍一下收到消息跟撤回消息的区别:在收到消息时,微信响应包中 MsgType=1 ,Content 是介绍到的消息:

在收到撤回消息时 MsgType=10002,Content 是撤回的提示信息:

要想查看撤回的消息,只需要将 ”MsgType”: 10002 替换成 ”MsgType”: 1, 并将 Content 替换成友好信息就行了。

下边编辑 fiddler 脚本,自动替换指定响应数据:

要想编辑 fiddler 脚本,要下载一个 fiddler 脚本编辑插件,点击 fiddler->Rules->Customize Rules, 按照提示安装插件,重启 fiddler ,截图如下:

编辑 fiddler 脚本,使其在响应包中自定替换指定内容,直接编辑函数,替换如下所示:

static functionOnBeforeResponse(oSession: Session) {

if (m_Hide304s && oSession.responseCode== 304) {

oSession["ui-hide"] ="true";

}

if(oSession.GetResponseBodyAsString().Contains('"MsgType": 10002')){

// Remove any compression orchunking

oSession.utilDecodeResponse();

var oBody =System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);

// Replace all instances of the DIVtag with an empty string

//var oRegEx =/<div[^>]*>(.*?)<\/div>/gi;

//oBody = null;

varstrBody=oBody.replace('"MsgType": 10002','"MsgType": 1');

// Set the response body to thediv-less string

//oSession.utilSetResponseBody(strBody);

var resourse=/"Content":"(.*)"/gi;

var resourse1='"Content":" 以上为撤回消息 "'; //

varstrBody=strBody.replace(resourse,resourse1);

//FiddlerObject.alert(strBody);

oSession.utilSetResponseBody(strBody);

}

}

保存,大功告成!!

测试一下,先发送一段文字,然后撤回,效果如下所示:

查看 fiddler 中的数据包,已经直接将撤回消息数据包替换掉了:

这样,微信网页版一直开着,就可以查看所有被撤回的消息了

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部