2020年12月21日星期一

How can I decrypt this m3u8 and key file to mp4, Maybe its use javascript to decrpt

THIS is the video website: the video website link

From this video link, I download the m3u8, key.key and ts video files, and use FFMPEG to transform these files to mp4. but Error:

ffmpeg -allowed_extensions ALL -i a.m3u8 -c copy 01.mp4  ffmpeg version N-94813-g85386c36e3-ffmpeg-for-N_m3u8DL-CLI Copyright (c) 2000-2019 the FFmpeg developers    built with gcc 8.2.0 (GCC)    libavutil      56. 35.100 / 56. 35.100    libavcodec     58. 56.101 / 58. 56.101    libavformat    58. 32.104 / 58. 32.104    libavfilter     7. 58.102 /  7. 58.102    libavresample   4.  0.  0 /  4.  0.  0    libswresample   3.  6.100 /  3.  6.100  [hls @ 007e3000] Skip ('#EXT-X-VERSION:3')  [hls @ 007e3000] Skip ('#EXT-X-ALLOW-CACHE:YES')  [hls @ 007e3000] Opening 'a.key' for reading  [hls @ 007e3000] Opening 'crypto:43924590506ad94e644d0bfac89e14b9_2_0.ts' for reading  [hls @ 007e3000] Opening 'crypto:43924590506ad94e644d0bfac89e14b9_2_1.ts' for reading  [hls @ 007e3000] Error when loading first segment '43924590506ad94e644d0bfac89e14b9_2_0.ts'  a.m3u8: Invalid data found when processing input  

The key file is

00000000h: 46 F5 50 A3 7A 46 85 B5 8C 17 5B 0E 4B 8D F5 49 ; F鮌F叺?[.K嶕I  00000010h: F1 02 79 41 58 C7 A3 D3 17 90 0D D6 27 67 D6 D0 ; ?yAX牵???g中  

and the IV value in the m3u8 file is

IV=0x786d9270e353d8758b621c1f775491f2  

Too long bits to FFMPEG.


In my limited experience with html and javascript, I found the Chrome blob a random named javascript file when the website page freshed.

Chrome - Network log

Some codes in the javascript file like:

o = function() {                  function t(t, e, i, n) {                      this.decryptdata = i,                      this.discardEPB = n,                      this.decrypter = new v.a(t,e,{                          removePKCS7Padding: !1                      })                  }                  var e = t.prototype;                  return e.decryptBuffer = function(t, e) {                      this.decrypter.decrypt(t, this.decryptdata.key.buffer, this.decryptdata.iv.buffer, e)                  }  

I think the website use this js file to decrypt the key file and the IV value, but I can't add breakpoint to the random named js file.


I am studying this for a long time, but no use.

Please help or try to give some ideas how to achieve the decrypted key and IV?

Thanks in advance.

https://stackoverflow.com/questions/65403155/how-can-i-decrypt-this-m3u8-and-key-file-to-mp4-maybe-its-use-javascript-to-dec December 22, 2020 at 12:07PM

没有评论:

发表评论