声明:本文只作学习研究,禁止用于非法用途,否则后果自负。如果侵权到了您的权益,请立即联系我删除!
前言
这是一个群友发的需求,返回的m3u8
数据是加密的,本着互帮互助的原则,顺手就给他弄了,也写(水)篇文章。
目标网站:
抓包
老规矩,先抓个包看看。
可以看到,m3u8
这个包里的data
是加密的,接下来咱们就搞它。
寻找加密位置
像这种响应数据是加密的,可以通过搜索.decrypt
或者.decyrpt(
这种字眼去定位加密的位置,这次也是比较幸运,搜出来的结果比较少,很容易就找到对应的位置了。
这个n.data.data
就是之前的密文。
加密逻辑分析
还原数据的语句:
r = xxtea.toString(xxtea.decrypt(n.data.data, xxtea.toBytes(i + sectionID)))
这个i
是一串hash
值,通过以下代码生成:
e = new Rusha
t = sectionID + "icq"
i = e.digest(t).substr(0, 32)
把Rusha
方法扣出来即可。
然后再分别把xxtea.decrypt
和xxtea.toString
扣出来,没什么难的,缺什么就扣什么。
值得一提的是,需要用到atob
方法,可以用Buffer.from
替代:
var atob = function(a){
return Buffer.from(a, 'base64').toString('binary')
}
运行效果如下:
写完了,好像有点短😂
Love & Peace,下回见。