xifangczy 发表于 2024-7-1 06:44

某瓜视频文件解密

本帖最后由 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

视频正常播放后 点击获取密钥即可

anorith 发表于 2024-7-1 19:23

好技术,学习一下

as_6283081 发表于 2024-7-2 00:59

啥瓜啊?

无相孤君 发表于 2024-7-1 17:38

厉害啊,原来这样子抓

china08 发表于 2024-7-1 19:27

其他网站能用吗

Psc7day 发表于 2024-7-1 20:23

感谢大佬分享

sgw1970 发表于 2024-7-1 21:02

这样太麻烦了,IDM可以下载正常的

xifangczy 发表于 2024-7-1 21:06

sgw1970 发表于 2024-7-1 21:02
这样太麻烦了,IDM可以下载正常的

{:1_926:} 你下载一个给我看看

fanglei09 发表于 2024-7-1 22:15

好东西,试试看看

acesec 发表于 2024-7-1 22:22

膜拜学习{:300_958:}
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 某瓜视频文件解密