某瓜视频文件解密
本帖最后由 xifangczy 于 2024-7-1 06:48 编辑地址 aHR0cHM6Ly93d3cuaXhpZ3VhLmNvbS82NTY5MzgyOTk0ODkxNTA2MTc5
通过 猫抓扩展 得到多条资源
可以看到是 音频和视频分离的播放技术, 我们把音频和视频分别下载到本地。(由于是加密的 猫抓自带的 音频 视频合并功能无法正常使用)
下载的视频和音频都只有头1分钟正常 之后就是花屏或无声。显然是加密了。
首先分析视频文件看看有什么线索 通过 mp4info 查看文件信息 运行命令 mp4info video.mp4
Coding: enca
Scheme Type: cenc
Scheme Version: 65536
Scheme URI:
cenc加密 以及一条很重要的信息 Bento4 Video Handler 既然是bento4那当然就使用mp4decrypt来解密。但最重要的key还需要通过网站分析获取。
F12 - 网络
根据经验找到第一条视频资源,然后再紧接着往上寻找,通常能找到相关的文件。
找到 一个文件名是 play_licenses 的请求。
查看返回内容,是一个json格式
{
"play_licenses": {
"v03043g10000cf4hgfrc77u8o5dlsusg": {
"63c9183f6c39fc8c15b5e7b90003043b": "TvGJP7QI6Ay67ZVcmHPhxmxafnkH05GvYmKsKQDpdmdCuMAPHRonDko="
}
},
"base_resp": {
"code": 0,
"message": "success"
}
}
按照经验应该查看这条的调用堆栈 一个个查看。网站用的第三方库比较多,一个个查看很麻烦。
很明显 "TvGJP7QI6Ay67ZVcmHPhxmxafnkH05GvYmKsKQDpdmdCuMAPHRonDko=" 是一个base64 通过 atob还原后得到十六进制数据 直接拿去当key解密
mp4decrypt --key 1:4ef1893fb408e80cbaed955c9873e1c66c5a7e7907d391af6262ac2900e9766742b8c00f1d1a270e4a video.mp4 newvideo.mp4
输出的视频 仍然花屏,看来没那么简单。
既然是base64 网站一定会把它进行还原 大概率会使用 atob 函数,那么我们就直接搜索atob关键词也有太多调用的地方,我们可以写个简单的油猴脚本去劫持atob函数。
// ==UserScript==
// @name test
// @namespace https://94cat.com/
// @version 0.1
// @descriptiontest2
// @AuThor mz
// @match https://www.ixigua.com/*
// @Icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @run-at document-start
// @license GPL v3
// @grant none
// ==/UserScript==
(function () {
'use strict';
const _atob = window.atob;
window.atob = function (base64) {
if(base64 == "TvGJP7QI6Ay67ZVcmHPhxmxafnkH05GvYmKsKQDpdmdCuMAPHRonDko="){
debugger
}
return _atob(base64);
}})();
打开F12 刷新网站 会断在你的油猴脚本 debugger 的位置。
接下来只需要F11 继续跟进,立马跳到网站的自己的脚本。
继续单步F11 分析 进入 Wc 函数
直接 到 return U.join("") 位置下断点,查看结果。
获得 31bf3bac917f4b25b46143896dbcefd6 32位的东西 大概率是key 再次尝试解密
>mp4decrypt --key 1:31bf3bac917f4b25b46143896dbcefd6 video.mp4 newvideo.mp4
这次正常解密,视频能够正常播放完整。
接下来就简单了。可以不再使用Bento4工具包。直接使用ffmpeg一步到位。
ffmpeg -decryption_key 31bf3bac917f4b25b46143896dbcefd6 -i video.mp4 -decryption_key 31bf3bac917f4b25b46143896dbcefd6 -i audio.mp4 decrypt_video.mp4
分别把 视频 和 音频 解密然后再合并。
本地没有ffmpeg也没关系 猫抓提供了在线ffmpeg https://ffmpeg.bmmmd.com/
最后运行命令 完成解密合并。
那么最后问题。如何让以后更方便的下载视频?
继续强大的油猴脚本解决,把网站Wc函数的完整复制到脚本里,缺什么函数就补上去,直到能正常解密为止。
写了个示例:
https://greasyfork.org/zh-CN/scripts/499324
视频正常播放后 点击获取密钥即可
好技术,学习一下 啥瓜啊? 厉害啊,原来这样子抓
其他网站能用吗 感谢大佬分享 这样太麻烦了,IDM可以下载正常的 sgw1970 发表于 2024-7-1 21:02
这样太麻烦了,IDM可以下载正常的
{:1_926:} 你下载一个给我看看 好东西,试试看看 膜拜学习{:300_958:}