以下是手动获取key的方法:

下断点
Disable Cache

  • 此时在console执行btoa(String.fromCharCode.apply(null, new Uint8Array(i._sce_dlgtqredxx)))即可得到base64形式的key

得到base64形式的key

注意这里的界面方式是AES-ECB,并非AES-CBC
实际上和优酷是一类方法,所以请如果要用vvtoolbox_gui_series下载请选择AES-YK方法(v0.4.0版起)
然后通过支持aes解密的下载器配合key下载即可~

动图演示:

http://pan.iqiyi.com/ext/paopao/?token=eJxjYGBgmBQtsZUBBHZNkQAAFYwDIQ.gif
动图演示

标签: aes

已有 54 条评论

  1. moming moming

    获取到了key和ts文件,无法解密,求方法:

    key = base64.b64decode('ddFfcaept10uBA7yArsN8w==')
    cryptor = AES.new(key, AES.MODE_ECB) #ECB不需要iv

    1. 不可说

      1. moming moming

        我愿意付点费用

        1. 文章已经提到工具了,你再看看,再搜索一下。

  2. HSSHSG HSSHSG

    阿里加密的学习平台这个key,可以在控制台Scopes中找到。不知道该如何写js书签将其提取出来。
    http://r.photo.store.qq.com/psc?/V12yBelf3PsfUn/45NBuzDIW489QBoVep5mcZ3jrjy2mz1MhV6fuDsq0tK46GgyE0KUo0g8.V8lmUh67khj7k1.I0aAgY3dbLI8yGE5XLmUdgDpze0UxpBCVyU!/r

    1. 参考:https://stackoverflow.com/questions/45506745/what-is-scopes-in-dispatch-of-redux

      这种是私有属性,逻辑上是不可见的,只是Devtools内部实现了一种方法,让你可以在控制台看到。
      有一种方法是你修改js,然后拦截原来的js定向到修改后的js,这样你就能随便控制了。另外似乎写扩展插件也可以,但是不知道怎么操作。

  3. 风

    在console执行btoa(String.fromCharCode.apply(null, new Uint8Array(i._sce_dlgtqredxx)))后报错:
    aliplayer-min.js:formatted:2490 Active resource loading counts reached a per-frame limit while the tab was in background. Network requests will be delayed until a previous loading finishes, or the tab is brought to the foreground. See https://www.chromestatus.com/feature/5527160148197376 for more details
    btoa(String.fromCharCode.apply(null, new Uint8Array(i._sce_dlgtqredxx)))
    VM1967:1 Uncaught ReferenceError: i is not defined

    at <anonymous>:1:53

    (anonymous) @ VM1967:1

    1. 提供一下具体的网址。

  4. https://hls.videocc.net/f8f97d17d0/3/f8f97d17d0fe0d59469cf10eb48ca973_3.m3u8
    这个好难啊,polyv的付费的,所以加密....

    1. 如果是和本文下面评论提到的wx.233.com一个网站的,可以看我在那下面的追加留言,如果你自己搞不定,可以有偿给你做一个视频教程。

    2. 需要具体的视频播放页才能分析。

  5. 然后 然后

    请教下大神aliplayer-hls-min.js加密这种URI的这种怎么个破解思路

    EXTM3UEXT-X-VERSION:3EXT-X-ALLOW-CACHE:YESEXT-X-TARGETDURATION:10EXT-X-KEY:MEATHOD=AES-128,URI="Njk2NTAzZGEtOGMxZS00NjJkLWI5NTItMGQ3M2M4MDQzMjU5QjR1SnJQeEFMRmY5cmJyUmZjL2dNeWNtZnhaaVRrc3JBQUFBQUFBQUFBQXllb0FVUEJtQTdEOU4vdW9vWVpsQk96QlVXNjVrMytELzRqd0x4a0xqUk9GN1NRc3hHWC80"EXT-X-MEDIA-SEQUENCE:0EXTINF:10.000000
    1. 信息不足,需要提供具体的网站才能分析。

  6. 保利威加密的这个如何解密啊,一直没找到断点的key、长度也不对
    https://wx.233.com/search/v1/study/?mid=29690&did=312268&tid=29786&teacher=979&intoYearSource=1&lastMyclassId=25524%2C29690

    1. priapus priapus

      N_m3u8DL-CLI 没问题啊,直接下载...

    2. 确认了,没问题。
      http://pan.iqiyi.com/ext/paopao/?token=eJxjYGBgmBQtsZUBBC7MfgkAFq0EDw.jpg

    3. 请进入图中所示那个 blob里面下断点而不是play.js里面。

    4. 没有验证,简单看了下,你搜索这个图中的关键词,然后再图上的位置下断点,然后就能找到key和iv了,后面的事情就不用多说了。
      http://puui.qpic.cn/vshpic/0/WHrcgWU7uGqM_LPbux3rv53wJxB43KcpKbYeV6gciVxKojVs_0/0.jpg

  7. 下断点,直接卡死,请问该教程是否还有效

    1. 后来去吃了个饭没管它,后来出来了。。。有办法提取js吗

      1. 我对js不是太熟悉,这个你可以自己尝试一下。我认为简单的暴力的方案是想办法替换js内容,可以参考【本地实时修改js文件以调试网页js的方案】一文。

  8. 大佬,这个网站的课程视频怎么解密呀,我买了但是是用七牛云加密的,貌似不太好解。
    https://edu.hltrader.com/index/mulitcourse/detail.html?cid=57

    1. 看不了,不知

      1. 需要先微信登录付费才能看的,这个能找人破解解密吗?
        这是m3u8文件里的:

        EXTM3UEXT-X-VERSION:3EXT-X-MEDIA-SEQUENCE:0EXT-X-ALLOW-CACHE:YESEXT-X-TARGETDURATION:17EXT-X-KEY:METHOD=QINIU-PROTECTION-10,IV=0x1370fabca4354bf72fd3867426bb5ab6EXTINF:11.066667,

        /5t2z9mIR2ZKG20c7w5PeHsrDNjA=/lkPvVm4OZhCDSz8KUwpaMarO4gS4/000000.ts

        EXT-X-KEY:METHOD=QINIU-PROTECTION-10,IV=0x428d89a125f1359a6dead497f5027d97EXTINF:10.033333,

        /5t2z9mIR2ZKG20c7w5PeHsrDNjA=/lkPvVm4OZhCDSz8KUwpaMarO4gS4/000001.ts

        EXT-X-KEY:METHOD=QINIU-PROTECTION-10,IV=0xf7d3ef325ff0cea8c90f0c874486d274EXTINF:16.666667,
        1. 就是这两个代码(播放时会显示在屏幕上),还有一个显示网址和名称的代码找不到:

          第9课-课程总结 <div class="video-box"> <video id="video" class="video video-js vjs-big-play-centered"></video> <div class="video-user"> 用户馮王正在学习中 </div> <!-- <button id="zoom">全屏</button> --> </div> </div>
        2. 看起来是AES加密的变种,研究研究可能还是有搞头,不过我还是建议直接录屏来得快。

          1. 就是有的HTML元素可以设置显示与否的属性,你可以F12在Element界面操作,具体的要具体分析,我有不知道这个播放的时候什么样子,指点不了。另外什么跑马灯hhh

          2. 咋修改?有教程指点一下吗?去跑马灯吧

          3. 这个应该稍微修改下前端就行了。。

          4. 好的,不过直接录屏有字幕滚动的,学员信息和开课方网站,这个能去掉吗?

  9. 老哥,能帮忙看看这新东方怎么下载吗?
    https://study.koolearn.com/tongyong/learning/27224/-1/8119850

    1. moming moming

      帮我破解一下这个,应该很简单:
      https://www.epubit.com/coursePlay?id=458c2d12b7cf4d31afe1781e5a61dc37&courseCode=PCCb63a6ff8671d&courseId=6b11b7c31bef4d60b401e1db0aba73f5&tagId=2650681d-8433-4718-a401-22426df63b8c

    2. 你F12复制m3u8之后,用N_m3u8DL-CLI(N_m3u8DL-CLI-SimpleG)下载,记得先填ejZJcm1NVzF4SnNNN05uYw==,第一次会显示填充无效等,不用管,允行后,再填N0cxRUs2VzVQRHZ4TFVxUw==进行下载,然后就能下载完整。

    3. 大佬用你的方法找到了key,但是解密出了问题
      def decrypto(key, text):

      cryptor = AES.new(key.encode('utf-8'), AES.MODE_ECB) plain_text = cryptor.decrypt(text) return plain_text.rstrip(b'\0')

      txt = open("1.ts", 'rb').read()

      with open('2.ts', 'wb') as file:

      file.write(decrypto(key, txt))

      1.ts是直接下载的ts文件,解密出来的2.ts使用ffmpeg转码报错:
      Invalid data found when processing input
      好像是没解密成功,问一下这代码有什么问题吗?

      1. 今天又看了下,补充一点,新东方的key可能不止一个,另外新东方的解密方式是CBC,不是ECB

      2. 你可以把一个不加密的ts通过ECB加密,然后用ffmpeg你看看能不能读出信息来。
        你再试试直接用ffmpeg读取1.ts,有没有什么信息。
        读取信息命令 ffmpeg -i 1.ts

        1. 好的,大佬。我刚按照你说的尝试了一番,ffmpeg能获取未加密的ts信息,但加密的时候遇到了问题,用Python的aes加密要求数据是字符串,读入的ts二进制数据加密不了,转字符串也一直报错,后来用PHP,
          $c = file_get_contents("1.ts");
          // 加密
          $encrypt = openssl_encrypt($c, 'AES-128-ECB', "WHYtgTZwgJYDGZaA1O+bfQ==");
          file_put_contents("2.ts", base64_decode($encrypt));
          $a = file_get_contents("2.ts");
          // 解密
          $decrypt = openssl_decrypt(base64_encode($a), 'AES-128-ECB', "WHYtgTZwgJYDGZaA1O+bfQ==");
          file_put_contents("3.ts", $decrypt);

          1是未加密,2是加密,3是还原,获取信息1,3正常,均能播放,2提示:Invalid data found when processing input,感觉应该是编码的问题,大佬可以给个你之前写的工具的思路吗?

          1. 我上面回答的意思是这个加密并不是对整个文件加密,所以不能直接对整个文件直接解密。至于其他信息,不能告知。

    4. 大概看了下,这个key很好获取,比如在hls.min.js的this.str2ab(r.key)处下断点就能拿到key,本质是AES加密,可能是ECB或者CBC,下载找个能解密AES的应该就行了。

  10. abc abc

    csdn学院用阿里云点播加密方式是使用AES-ECB算法的,你的AES-YK我没反编译,在我的了解中AES中也没有这种加密模式,但是差不多意思就是以对下载的加密ts文件中的音视频数据流(已被加密)和获取到的key进行AES-ECB解密,我说得没错吧...(其实我还能说得更加详细)

    1. AES-YK中YK指的是youku,因为软件功能之一是用来解密优酷普通加密的,而csdn这个恰好是用的阿里的方案,两者解密方案本质上是一样的。

    2. abc abc

      其实我已经找到了关键代码。。。烦就烦在阿里对ts文件加密的位置(注意:是位置)比较变态。。。

      1. 阿里云私有加密 请问怎么账号ts中加密的位置,然后进行解密呢

        1. 你说的太过宽泛,没法回答。

  11. ddz ddz

    大佬,这个断点是怎么找到的,我找单步跟了好久都没有找到这个断点。最近研究了好多视频的解密,七牛什么的,就是这个阿里的没找到断点的地方,还望大佬赐教

    1. 你可以在case "demux"处的decryptdata进行反向寻找,最后可以定位到这个地方。

      1. ddz ddz

        谢谢,我研究研究

  12. 您可真是大神啊!我用你的方法成功了,都不敢相信成功了!终于可以下载CSDN用血汗钱买的课程了

    1. QQ1471885188 QQ1471885188

      你好请问获取到密码后如何替换m3u8里面的密码,为啥我替换后还是不能解密失败

  13. d8899p d8899p

    大佬能不能录制一个gif=-=小白看的有点蒙

    1. 已经补充了动图,你可以看一下这个演示:
      动图演示 http://pan.iqiyi.com/ext/paopao/?token=eJxjYGBgmBQtsZUBBHZNkQAAFYwDIQ.gif

  14. d8899p d8899p

    你好问下如何下断点呀,老哥=-=

添加新评论