QQ空间抓包分析及E4A发说说程序编制

administrator 614 6
警告:本文仅限于用于学习研究HTTP数据传送原理,不得用于盗号等非法领域,否则后果自负!!!

明确任务

我们的任务只有一个,就是用E4A编制一个发送说说的程序,发送过程需要完全依靠代码处理。

抓取数据包

我们打开谷歌浏览器,打开QQ空间的网页,是这样的:

QQ空间抓包分析及E4A发说说程序编制

接下来我们打开控制台,请在这个页面下按下F12,并选择模拟为手机UA在线,然后按下F5刷新页面:

QQ空间抓包分析及E4A发说说程序编制

搞定之后呢,我们输入账号和密码登录上去,再切换到XHR选项卡,勾选log记录日志,并删除刚刚产生的日志:

QQ空间抓包分析及E4A发说说程序编制

接着,我们发一条说说测试一下:

QQ空间抓包分析及E4A发说说程序编制

QQ空间抓包分析及E4A发说说程序编制

发表成功后我们可以留意到产生了两个数据包,如下图:

QQ空间抓包分析及E4A发说说程序编制

我们分别点击它们,查看传入的数据:

QQ空间抓包分析及E4A发说说程序编制

点开第一个包,如上图,我们的说说内容就在包里了,可以判断,这是QQ空间的发说说发包协议。

分析发包机制

得到了包,我们研究一下发包的内容:

QQ空间抓包分析及E4A发说说程序编制

这就是请求报文了。

之前我有讲过发包机制的一些基础,账号登录涉账号操作都有cookie的身影,这里不多说了,肯定cookie是有参与发包的。我们分析一下这个数据报包含的内容:

首先是请求地址:

https://mobile.qzone.qq.com/mood/publish_mood?qzonetoken=3162870500783c0e05be8cb93a4ebbd7b9891686673b2ea2f3f16bcf23b7ac37c4fb36389bf9d809ca6293cf7f0127f6ef&g_tk=1805101738

可以看到很明显的地址里面有一堆乱七八糟的加密参数,我们研究一下发现有两个秘参,分别是qzonetokeng_tk,我们先不管这是什么,继续看其它的信息:

接下来看请求报文:

QQ空间抓包分析及E4A发说说程序编制

opr_type:publish_shuoshuo
res_uin:3461116255
content:测试发表说说
richval:
lat:0
lon:0
lbsid:
issyncweibo:0
format:json
看这个表单,我们一看就知道其中res_uin是QQ号,content是说说内容。所以我们不用管其他的了,应该是固定内容。
所以整个发包流程我们已经搞定了。

解决URL里的密参

这个包如果要发的话密参一定要解决,就是URL里的qzonetokeng_tk

先解决qzonetoken吧,看看源码里有没有:先提取qzonetoken,是3162870500783c0e05be8cb93a4ebbd7b9891686673b2ea2f3f16bcf23b7ac37c4fb36389bf9d809ca6293cf7f0127f6ef,我们ctrl+u进源码:

QQ空间抓包分析及E4A发说说程序编制

OK,我们用眼睛找... ... 算了,我怕眼睛吃不消[笑哭]我还是搜吧,废话不多说,ctrl+f搜索,如图:

QQ空间抓包分析及E4A发说说程序编制

够清楚了吧?保住了我的眼睛[托腮]

好了,我们拿个小本子记住:

在登录到QQ空间手机版之后第一个页面,源码里能找到密参qzonetoken,地址可以是https://h5.qzone.qq.com/mqzone/index,其规则为前try{return ",后"

接着找g_tk,我们先退出账号重新登录,拿到全部的发包以及缓存资源日志:

QQ空间抓包分析及E4A发说说程序编制

接着登录,跟刚刚一样:

接着我们在源码里试试能不能搜出g_tk的值,结果是不能的,我就不配图了,接着搜资源,还是不能的,只能搜到链接里带着的g_tk,我们这时候就可以怀疑这个g_tk是不是用的时候生成的?那我们搜搜看有没有它的生成规则:

QQ空间抓包分析及E4A发说说程序编制

发现了疑点,我们点几下看看:

QQ空间抓包分析及E4A发说说程序编制

这个注释写的很明白了,如上图,g_tk就是由这段代码生成出来的了,我们发现里面有个skey,这是什么东西?翻一下cookie表看看:

QQ空间抓包分析及E4A发说说程序编制

好了,就这样,我们两个密参搞定,拿小本子记一下:

g_tk的生成规则是靠cookie里的skey靠如下JavaScript代码生成:

if(skey !== tmpSkey){
	tmpSkey = skey;
	var i = 0, l = skey.length;
	for (; i < l; ++i) {
	hash += (hash << 5) + skey.charAt(i).charCodeAt();
				}
	tmpToken = token = hash & 0x7fffffff;
}

到时候我们把这个JavaScript用E4A给写出来就能搞定!

E4A代码写一个发说说的程序:

现在可以上E4A写了,创建工程那些的我就不说了,直接开干了,包都分析透彻了,我们代码就一口气吧:

控件:很简单,一个浏览框一个多线程,搞定

QQ空间抓包分析及E4A发说说程序编制

代码:自个看吧:

QQ空间抓包分析及E4A发说说程序编制

下载的话去易如意: 点击前往下载

测试

给两个图你们自己看吧:

QQ空间抓包分析及E4A发说说程序编制

QQ空间抓包分析及E4A发说说程序编制

就这样了,如果有帮助请帮忙点赞,不打赏不准走,下面有打赏按钮[doge]

发表评论 取消回复
表情 图片 链接 代码

  1. 小金库
    小金库 Lv 1

    !求一个E4A的接口例子解释,从Java写接口到E4A实现调用!初学者,求教了!

分享