Skip to main content
 首页 » 其他资源

微信公众号视频下载分析

2018年06月12日 10:38:409630358

微信图片_20180612104158.png

这是下次要发的微信公众号文章音频下载工具2.0


昨天自己分析了一遍公众号的视频下载原理了,我的目的想把这个功能加入到音频下载器里,所以就先记录下分析得过程。


0x1    分析视频的播放文件

以它为例:https://mp.weixin.qq.com/s/43zcY8nMAuBUqj56hU1O-w   要找到播放的源地址,首先用浏览器的抓包工具,抓个数据分析分析。


关键点:

1、首先,电脑版是分片播放的,这种会麻烦很多,我们要利用浏览器模拟手机访问。

QQ截图20180612110332.jpg

抓的信息里面有一些重要的数据出现了,首先看看这个getinfo的具体参数

QQ截图20180612110713.jpg

数据是有点多,但是莫慌,分解下数据。

https://h5vv.video.qq.com/getinfo?

callback=txplayerJsonpCallBack_getinfo_820045

&&charge=0

&defaultfmt=auto

&otype=json

&guid=bc42e57ec105bc32e01ce4bf06684369

&flowid=aa4c1dec1cab49952d92025172daf134_11001

&platform=11001

&sdtfrom=v3010

&defnpayver=0

&appVer=3.3.513

&host=https%3A%2F%2Fmp.weixin.qq.com%2Fs%2F43zcY8nMAuBUqj56hU1O-w&ehost=https%3A%2F%2Fv.qq.com%2Ftxp%2Fiframe%2Fplayer.html%3Forigin%3Dhttps%253A%252F%252Fmp.weixin.qq.com%26vid%3Dg06827lmf9t%26autoplay%3Dfalse%26full%3Dtrue%26show1080p%3Dfalse

&sphttps=1

&_rnd=1528772323

&spwm=4

&unid=762fd1146deb11e89d19a042d42c850a

&vid=g06827lmf9t

&defn=auto

&fhdswitch=0

&show1080p=0

&isHLS=0

&fmt=auto

&defsrc=1

&_qv_rmt=U0lJnMZaA12722KdC%3D

&_qv_rmt2=xeZNd1CQ1587338Kg%3D

&_1528772323630=

经过测试,简化版(换电脑访问也是正常的,获取的链接也是可以下载的):

https://h5vv.video.qq.com/getinfo?

otype=json

&platform=11001

&appVer=3.3.513

&vid=g06827lmf9t

&guid=bc42e57ec105bc32e01ce4bf06684369

&defaultfmt=auto

哪些参数需要获取呢?

https://h5vv.video.qq.com/getinfo?

otype=json        //返回结果的方式json格式        固定

&platform=11001    //固定

&appVer=3.3.513    //固定

&vid=g06827lmf9t    //需要自己获取

&guid=bc42e57ec105bc32e01ce4bf06684369    //算法生成

&defaultfmt=auto    //固定 可选


那么问题就来了,固定的参数简单,但是自己获取和算法生成的怎么获取呢?


0x2 参数获取

首先自己获取的这个vid,通过搜索,发现源码中就有。

QQ截图20180612112334.jpg

guid没找到算法,我就用了另一个方式生成的32位的值来代替


伪造guid(正常使用)

我的思路时通过搜索guid来定位的,最后定位在这个js里,找到这个计算guid的算法(这个不是真正的guid的方法,我只是没找到,然后使用了这个也没问题)。

QQ截图20180612114200.jpg



0x3 视频链接拼接

void CScript_demoDlg::GetTXGuid(CString &szRet)
{
    //初始化
    CoInitialize(NULL)
    CScriptControl js;

    if (js.CreateDispatch(TEXT("MSScriptControl.ScriptControl")))
    {
        //设置当前使用的脚本语言
        js.put_Language(TEXT("JScript"));
        //执行语句,执行完成后var中即包含了表达式的结果
        //js.put_AllowUI(TRUE);
        js.put_AllowUI(TRUE);
        js.AddCode(TEXT("function createguid(a){a=a||32;for(var b=\"\",c=1;a>=c;c++){var d=Math.floor(16*Math.random()).toString(16);b+=d}return b}"));
        //js.a
        VARIANT var = js.Eval(TEXT("createguid(32)"));
        szRet = var;
        //释放接口
        js.ReleaseDispatch();
    }
CoUninitialize();
}

guid结果:"87604c8048b221e32e651866580cee96"


最后拼接一下参数,得到下面的链接

https://h5vv.video.qq.com/getinfo?platform=11001&charge=0&otype=json&sphls=0&sb=1&nocache=0&appVer=V2.0Build9496&guid=87604c8048b221e32e651866580cee96&vids=g06827lmf9t&defaultfmt=auto



通过访问这个链接得到一段json数据(里面几个关键点标记了)

QQ截图20180612161051.jpg



最后把所有参数拼接下,得到4个完整的播放地址:

地址一:

http://113.106.207.154/vhot2.qqvideo.tc.qq.com/AmBXeQSVIE_fc6T_HY4mM9XsEk3L0XSD2NXemoXrGcOE/g06827lmf9t.mp4?guid=87604c8048b221e32e651866580cee96&vkey=79D453D5CE1202ACF2B59050100C1FA294B7AEA8BEAD6CF52AC8368AF02F66F6C26E9FDD2719A7556AC7737969102C06F3F97947778D4B83DB3736F97B88303BAA254E2F253B74379DC46D4983F6A4E4A2C99B54577B61AB50377E3CC89835CC82851F2BA8ED8D99E300DFC6D2CB01DF8E4653F3A37482DE


地址二:

http://ugcws.video.gtimg.com/g06827lmf9t.mp4?guid=87604c8048b221e32e651866580cee96&vkey=79D453D5CE1202ACF2B59050100C1FA294B7AEA8BEAD6CF52AC8368AF02F66F6C26E9FDD2719A7556AC7737969102C06F3F97947778D4B83DB3736F97B88303BAA254E2F253B74379DC46D4983F6A4E4A2C99B54577B61AB50377E3CC89835CC82851F2BA8ED8D99E300DFC6D2CB01DF8E4653F3A37482DE


地址三:

http://ugcsjy.qq.com/g06827lmf9t.mp4?guid=87604c8048b221e32e651866580cee96&vkey=79D453D5CE1202ACF2B59050100C1FA294B7AEA8BEAD6CF52AC8368AF02F66F6C26E9FDD2719A7556AC7737969102C06F3F97947778D4B83DB3736F97B88303BAA254E2F253B74379DC46D4983F6A4E4A2C99B54577B61AB50377E3CC89835CC82851F2BA8ED8D99E300DFC6D2CB01DF8E4653F3A37482DE


地址四:

http://video.dispatch.tc.qq.com/g06827lmf9t.mp4?guid=87604c8048b221e32e651866580cee96&vkey=79D453D5CE1202ACF2B59050100C1FA294B7AEA8BEAD6CF52AC8368AF02F66F6C26E9FDD2719A7556AC7737969102C06F3F97947778D4B83DB3736F97B88303BAA254E2F253B74379DC46D4983F6A4E4A2C99B54577B61AB50377E3CC89835CC82851F2BA8ED8D99E300DFC6D2CB01DF8E4653F3A37482DE


注意:播放链接中的guid可以不用加,写到这里我才这么试了下,懒得编辑了。那么关键的就是怎么获取这个vkey值,琢磨了两天的结果。



简单的写了个demo

QQ截图20180612192810.jpg

评论列表358条评论
网赚平台
网赚平台回复 写得非常不错,赞一下
发表评论
新浪微博
微信