吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2705|回复: 17
收起左侧

[Web逆向] WEB前端逆向获取EME解密密钥

  [复制链接]
scz 发表于 2024-7-12 15:17
创建: 2024-07-12 14:39

看了这篇,学了些新知识:

某瓜视频文件解密 - xifangczy [2024-07-01]

https://www.52pojie.cn/thread-1939664-1-1.html

本文在原作者基础上进一步技术探讨。

mp4info video.mp4

这一步,我没看到Bento4的信息,倒是用其他手段看到了,试举三例:

strings video.mp4 | grep Handler

exiftool -HandlerDescription video.mp4

ffprobe -v quiet -select_streams v:0 -show_entries stream_tags=handler_name -of default=noprint_wrappers=1:nokey=1 video.mp4

原作者注意到play_licenses的响应中出现BASE64编码过的数据,假设js会用atob解码,拦截atob,断点命中后找到还原解密密钥的代码。原文写得很清楚,各步骤可以实际追随练手,推荐。

在此基础上,我多想了一些。

假设js解码密钥时,未用atob,用了自实现的BASE64解码函数,拦截atob无法命中。

假设目标服务器返回密钥时未用BASE64,比如用字节流的16进制表示,也能以可打印字符返回,解码时用自实现函数。

假设目标页面未用atob,且做了JS混淆,无法搜索特征字符串。

总之,把困难想得多一些,有无其他逆向工程手段?

考虑特定情形,假设目标网站用了DRM、EME、CDM这类技术:

DRM(Digital Rights Management)  数字版权管理
EME(Encrypted Media Extensions) 受保护的媒体扩展
CDM(Content Decryption Module)  内容解密模块

此时用油猴脚本直接拦截如下标准API:

navigator.requestMediaKeySystemAccess
MediaKeys.createSession
MediaKeySession.addEventListener

在调用栈回溯中或可直接找到eme.keys,即最终解密密钥。

就原作者所给示例而言,用油猴脚本注入如下代码:

(function() {
    let orig        = MediaKeySession.prototype.addEventListener;
    let func        = function () {
        if ( arguments.length === 2 && arguments[0] === "message" ) {
            debugger;
        }
        let ret = orig.apply( this, arguments );
        return ret;
    };
    func.prototype  = orig.prototype;
    func.toString   = orig.toString.bind( orig );
    MediaKeySession.prototype.addEventListener
                    = func;
})();

addEventListener命中时,在上一层栈帧中查看o.keys,即最终解密密钥。

本文并未否定原作者技术思路,只是进一步技术探讨,若谁碰上其他EME网站,不妨一试,方便的话,也请告诉我URL,便于验证、修正前述方案。

免费评分

参与人数 11威望 +1 吾爱币 +29 热心值 +9 收起 理由
jaffa + 1 谢谢@Thanks!
三滑稽甲苯 + 2 + 1 用心讨论,共获提升!
奈何不得 + 1 + 1 热心回复!
allspark + 1 + 1 用心讨论,共获提升!
GeII + 1 + 1 用心讨论,共获提升!
lihuhu + 1 我很赞同!
涛之雨 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
MagicMan + 1 热心回复!
Issacclark1 + 1 谢谢@Thanks!
mscsky + 1 + 1 我很赞同!
vilenyuu + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| scz 发表于 2024-7-15 08:51
AutumnFoam 发表于 2024-7-14 20:41
请问一下 寻找客户端向服务器发送验证码请求 比如有些网站存在验证码回显 这种知识在哪学

我对过验证码没产生过刚需,所以从未研究或关注过验证码。但我看本站就有许多讲如何过验证码的,你怕是没怎么遍历过。
AutumnFoam 发表于 2024-7-14 20:41
请问一下 寻找客户端向服务器发送验证码请求 比如有些网站存在验证码回显 这种知识在哪学
vilenyuu 发表于 2024-7-12 15:36
pjyang 发表于 2024-7-12 22:48
感谢分享思路,学习一下
Tyh52pj 发表于 2024-7-13 08:04
学习加一
kidll 发表于 2024-7-13 09:10
大佬牛逼,持续学习中
hanxiaochina 发表于 2024-7-13 10:51

感谢分享思路,学习一下
angelbaal 发表于 2024-7-13 15:04
学习一下,Thanks
zzh888888 发表于 2024-7-13 15:12
6666,学习一下
bdcpc 发表于 2024-7-14 16:05
没看懂!
Godisagirl1024 发表于 2024-7-14 18:52
看到标题就知道是四哥的文章了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 16:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表