干货,QQ音乐歌手列表解密方法!

  上次 分享了一下 生意参谋的 解密方法,写不是很好,见谅。

  这一次,我要分享的是 QQ音乐的歌手信息获取的解密方法,大神的可以绕道哦!

  先来一张 QQ音乐 网站图,歌手列表地址:https://y.qq.com/portal/singer_list.html 

qq音乐图

 

接下来,开始 爬虫 操作,初步流程,按F12 ,抓包调试,上图

qq抓包

 

上图 直接获取到了 列表页的 网址信息,具体这个怎么来的,这里不说了,太基础了,不浪费口舌了。

网址中的内容 分析一下:

https://u.y.qq.com/cgi-bin/musics.fcg?-=getUCGI165692935827088&g_tk=5381&sign=zza0x20nli39b31a4bb609c7b78275ed2b8d0ec78fbb7&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0&data=%7B%22comm%22%3A%7B%22ct%22%3A24%2C%22cv%22%3A0%7D%2C%22singerList%22%3A%7B%22module%22%3A%22Music.SingerListServer%22%2C%22method%22%3A%22get_singer_list%22%2C%22param%22%3A%7B%22area%22%3A-100%2C%22sex%22%3A-100%2C%22genre%22%3A-100%2C%22index%22%3A-100%2C%22sin%22%3A80%2C%22cur_page%22%3A2%7D%7D%7D

下面是展开的数据

-: getUCGI165692935827088
g_tk: 5381
sign: zza0x20nli39b31a4bb609c7b78275ed2b8d0ec78fbb7
loginUin: 0
hostUin: 0
format: json
inCharset: utf8
outCharset: utf-8
notice: 0
platform: yqq.json
needNewCode: 0
data: {"comm":{"ct":24,"cv":0},"singerList":{"module":"Music.SingerListServer","method":"get_singer_list","param":{"area":-100,"sex":-100,"genre":-100,"index":-100,"sin":80,"cur_page":2}}}

为了进一步查看哪些是变化的,那还要在抓包一个分页,

-: getUCGI796782016737499
g_tk: 5381
sign: zza186sdh05jdq27af03a5adad21f9891fbc31f2dedaf93
loginUin: 0
hostUin: 0
format: json
inCharset: utf8
outCharset: utf-8
notice: 0
platform: yqq.json
needNewCode: 0
data: {"comm":{"ct":24,"cv":0},"singerList":{"module":"Music.SingerListServer","method":"get_singer_list","param":{"area":-100,"sex":-100,"genre":-100,"index":-100,"sin":160,"cur_page":3}}}

从两个抓包的数据来看,变化的 有 getUCGI ,sign,data ,这三个数据

那我们先查询 最关键的sign,那我们找一下sign 在哪个代码段里,先搜索一下 如图:

QQ搜索sign

通过 搜索sign后,下面出现了几个网址,那我们一个个去打开找一下,关键位置。 

点开网址后 ,一定要点 格式化,如图

 

仔细搜索找到这一串代码:r.url.indexOf("u.y.qq.com") > -1 && (r.url = c("sign=" + getSecuritySign(r.data.data), r.url),

这个代码中的  "sign=" + getSecuritySign(r.data.data)  ,很明显告诉我们,sign=getSecuritySign(r.data.data),意思就是sign是通过 getSecuritySign(r.data.data) 进行加密算出来的,如下图

 

居然找到这个算法函数,那我们就需要进去看一下他算法了,我们先在左边的8211加上断点,鼠标点一下 数字 就可以了,然后,我们在网站中点 下一页,就直接会跳到这里了。

鼠标放到这个 getSecuritySign函数上会,自动跳出一个链接,点击一下就会 直接进入了。

进入算法代码中

 

到这里后,我们找函数测试一下,就是刚才的getSecuritySign这个函数,我们在console中进行简单调试 getSecuritySign(),按回车,多测试几个,发现值和我们sign 是一样的效果的,那就说明这个代码就是加密,我们是找对了。

 

那接下来我们分析一下这个值是怎么加密的,从上面的多个测试看出来,zza050npmgzld4h667210b4e7ab8ff0f1e1a5aa3912804a这个值中的,zza是一个固定值,667210b4e7ab8ff0f1e1a5aa3912804a这个也是一个固定值,

因为我们函数中()空的,他加密的是空值,那我们随便写个试试。

 

是不是发现不一样了,用同一个值去加密,后面的值就是不变的。从后面的  667210b4e7ab8ff0f1e1a5aa3912804a 这个值看出,就是MD5算法,具体怎么算的,还需要抓包看情况了。

 

这个加密算法里334 那边 下断点,进行测试,按f10,一步步查看

左边下了断点后,按了f10 两次,右边看到这组数据,a-z0-9的数字,下面是一个 lecqc05pajaf ,似乎是 上面的数字进行了随便提取组合到下面的,这个先放着,等会看抓包到网址是否有这些内容。再继续按f10,慢慢的,右边的scope那边关注要有没有什么内容出现,

发现出现了sign 值 "zzalecqc05pajaf0405ae7720c7b86f221e9ceb53c5e5d7"   在这个scope里,我们点开看看里面的值,上面抓包获取到是随机值 lecqc05pajaf  也在里面,而  CJBPACrRuNy7  和   0405ae7720c7b86f221e9ceb53c5e5d7 又是什么那?

0405ae7720c7b86f221e9ceb53c5e5d7 很好理解,就是sign 后面的值,那CJBPACrRuNy7 这个有什么那,因为这里已经加密了,看不到那个值加密的,我们在 Call Stack往下找,是否哪个值加密的 

发现了, 这个里看到值  {"comm":{"ct":24,"cv":0},"singerList":{"module":"Music.SingerListServer","method":"get_singer_list","param":{"area":-100,"sex":-100,"genre":-100,"index":-100,"sin":240,"cur_page":4}}} 在这里,这个是一个data值,我们可以直接获取到如图

 

 而 下面有其他值出现了

  1. 9: ["CJBPACrRuNy7"]
  2. 10: ["415780cec1273bc3d5928d0fbd831735"]
  3. 11: ["2qvw5s6oba"]    // 不小心关闭了f12,从新获取了,这个值就是 a-z 0-9 的一个随机值 ( lecqc05pajaf  )就是这个 。

    415780cec1273bc3d5928d0fbd831735 这个 就是一个 md5值,他的加密一个是 上面的  {"comm":{"ct":24,"cv":0},"singerList":{"module":"Music.SingerListServer","method":"get_singer_list","param":{"area":-100,"sex":-100,"genre":-100,"index":-100,"sin":240,"cur_page":6}}}    (data )   CJBPACrRuNy7  这个组合后的 md5,我们可以测试一下,是不是这样的 。打开站长工具http://tool.chinaz.com/tools/md5.aspx

看到了吗,这个 md5出来,很准确,抓包就到这里结束。

总结: getUCGI 值随便值不用管

        sign 是 一个 组合  zza  +  一个 a-z0-9的随机值 +md5(CJBPACrRuNy7+ data) 

好了具体这个解密流程大致就是这样的。至于用什么去写破解代码,就看自己会什么,写什么了?
所有流程多是通过其他高手写的资料里学到的知识,我这个不是第一个写的,也不是最后一个吧,感觉自己写 应该算流程比较全了,不过水平有限,希望大家不要介意。

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

plusboss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值