Satsuoni / widevine-l3-guesser

MIT License
842 stars 364 forks source link

True hero #1

Closed EnthusiastAnon closed 2 years ago

EnthusiastAnon commented 2 years ago

You, Satsuoni sir, are a true hero! How can we donate? You did an INCREDIBLE JOB, I just can't believe this. Please keep up the good work!

tuprimafromtomelloso commented 2 years ago

big clap to this amazing work.

09kkthxbb commented 2 years ago

Thanks for develeping this extension, I really appreciate your work! I wish I could donate to you in some way.

yunooooo commented 2 years ago

I'd also like to donate. This is amazing...

TiRajo commented 2 years ago

Hello, How to get the key? am getting of 512 count of character(like 300cfc303fc33cc03cfc033f30f00cc3f0c3f.......) only in console chrome.

fpalacio78 commented 2 years ago

should i use chrome 88? Thank you for your work

georgysaumen commented 2 years ago

should i use chrome 88? Thank you for your work

You can download browser Brave to get key

fpalacio78 commented 2 years ago

You can download browser Brave to get key

ok, I'll try thanks :)

PlaceboPRS commented 2 years ago

Amazing thank you!!!!!

TiRajo commented 2 years ago

should i use chrome 88? Thank you for your work

You can download browser Brave to get key

Hello how to get key am getting 512 character usually 32 character only the key would be ! Help me please

Satsuoni commented 2 years ago

should i use chrome 88?

I am using Chrome 89. Any chrome from 89 and above should work for now (until key is changed again). Many chrome-based browser should also work.

Hello, How to get the key? am getting of 512 count of character(like 300cfc303fc33cc03cfc033f30f00cc3f0c3f.......) only in console chrome.

You should probably make a separate issue for that... As readme states, you should wait. Right now, it, to my shame, guesses (brute forces) input encoding before decoding it, which is a slow process. It should output progress every ~32 bits for about 10-15 minutes before outputting the key. "300cfc303cf" corresponds to all-zero guess.

Thanks for develeping this extension, I really appreciate your work! I wish I could donate to you in some way.

Thank you! I do consider work to be failure though... I do have this Bitcoin address lying around? 1N12PaTwaULMLJjmQdggerBYRzcJ6kQCx3

TiRajo commented 2 years ago

brute forces

ya i got key after nearly 22min ! Nice Man but make it fix !

Satsuoni commented 2 years ago

brute forces

ya i got key after nearly 22min ! Nice Man but make it fix !

I can try, but no promises? If somebody knows how to make a lookup table for that, that would be nice. It is possible in theory, but I could not find a reasonably-sized table.

EnthusiastAnon commented 2 years ago

(until key is changed again).

Wait a minute, what key? If you have the new key, shouldn't Tommer's extension work?

georgysaumen commented 2 years ago

Hope this tool can be valid in lifetime, and not to be fix by google or provider of website!

georgysaumen commented 2 years ago

@Satsuoni Do you have playerduo or paypal payment gate ? I want to donate for you to support, I have find many ways to get key to decrypt video but still not work. Now I see your tool and I very interesting about that, I can get many key and can get many videos! Thanks for your tool!

Satsuoni commented 2 years ago

(until key is changed again).

Wait a minute, what key? If you have the new key, shouldn't Tommer's extension work?

I don't have the whole key. If I did, old extension would have worked (with key replaced). I have a whitebox from dll in wasm (and source code for it). Whitebox is now quite a bit more complex, as far as I can tell, at least the input part of it.

@Satsuoni Do you have playerduo or paypal payment gate ? I want to donate for you to support, I have find many ways to get key to decrypt video but still not work. Now I see your tool and I very interesting about that, I can get many key and can get many videos! Thanks for your tool!

I don't have conventional payment gates, sorry.

Hope this tool can be valid in lifetime, and not to be fix by google or provider of website!

Given that google only has to hit "generate random", compile and distribute new binary... Unlikely. Maybe a few months if we are lucky.

medvm commented 2 years ago

I join the thanks above. This is a really great job! Thanks

anaveem commented 2 years ago

There is now a copy of l3 guesser that works offline much faster, around 5 minutes. https://github.com/xhlove/WVGuesser Of course it wouldn't be possible without the Satsuoni's work. :)

Satsuoni commented 2 years ago

There is now a copy of l3 guesser that works offline much faster, around 5 minutes. https://github.com/xhlove/WVGuesser Of course it wouldn't be possible without the Satsuoni's work. :)

I tried a different approach, it seems a bit faster. Please check it out. There might be a slight probability that it'll fail for any given encrypted key... I think?

TiRajo commented 2 years ago

There is now a copy of l3 guesser that works offline much faster, around 5 minutes. https://github.com/xhlove/WVGuesser Of course it wouldn't be possible without the Satsuoni's work. :)

I tried a different approach, it seems a bit faster. Please check it out. There might be a slight probability that it'll fail for any given encrypted key... I think?

WOrks WIll Super ! Till got correct Keys ! Hats off for your work !!!!!! Time Takes .90sec!

astravaganza commented 2 years ago

instant!

xhlove commented 2 years ago

Great Work !

TiRajo commented 2 years ago

Great Work !

Can You too Try to fix yours!?

xhlove commented 2 years ago

Great Work !

Can You too Try to fix yours!?

It's not necessary now.

tuprimafromtomelloso commented 2 years ago

great work to both xhlove and Satsuoni.

xhlove yours have a really good thing that is the log of the wvk in a txt, i was using it to save the keys to dl the video in another moment, was a really cool idea.

TanukiAI commented 2 years ago

Let's see how long this one will last.

09kkthxbb commented 2 years ago

Thanks for the quick update! May I ask, are you still gonna maintain your work if either Google may notice this repo or widevine do some patches by any chance?

taeweishin commented 2 years ago

Satsuoni, can you make it work with Shaka?

Satsuoni commented 2 years ago

Thanks for the quick update! May I ask, are you still gonna maintain your work if either Google may notice this repo or widevine do some patches by any chance?

I'll try to keep current version available, but I'll probably not modify it after I finish writing Readme. Hopefully that, along with Tomer8007's writeup will provide enough info for other people to pick it up after Widevine updates key again.

Originally, this project was to be a personal exercise (with some public benefits as side effect), and confidence booster. It failed the latter goal, but at least I managed to make it barely functional. Working on it for much longer is probably bad for my mental health, sorry.

Satsuoni, can you make it work with Shaka?

Probably not. I am not sure what you expect it to do? If you have license, you can still play video, can you not?

jcronan-slcc commented 2 years ago

There is now a copy of l3 guesser that works offline much faster, around 5 minutes. https://github.com/xhlove/WVGuesser Of course it wouldn't be possible without the Satsuoni's work. :)

I tried a different approach, it seems a bit faster. Please check it out. There might be a slight probability that it'll fail for any given encrypted key... I think?

nice! it giving the key almost instantly!

EnthusiastAnon commented 2 years ago

It failed the latter goal

What?! It failed to boost your confidence!? But how!? You did all of this amazing work, you weren't really optimistic about making it faster, and after a day or two you made it to give keys instantly!

You are a genius! How can this endeavour not boost your confidence!?

Satsuoni commented 2 years ago

Satsuoni, can you make it work with Shaka?

Seems like Shaka player overrides hooks somehow. I cannot spend any more time on it tonight. In case of emergency, it should be possible to set breakpoint in onSessionMessage_ and manually feed data into extension, I guess?

What?! It failed to boost your confidence!? But how!? You did all of this amazing work, you weren't really optimistic about making it faster, and after a day or two you made it to give keys instantly!

Human mind is a strange thing. But to simplify: I wanted to extract RSA key. I managed to extract half of RSA key and whitebox that calculates the other half, which I still have little idea how it work, and it took much longer than expected, so...

EnthusiastAnon commented 2 years ago

Rest can work wonders on that 'strange thing'. Maybe in the future you'll succeed :) What one feels and thinks at one time can be different at another time in the future.

cavalia88 commented 2 years ago

I test the latest version on "https://bitmovin.com/demos/drm". Doesn't generate the key, I only see this message inside the chrome console: "Can't verify license request signature; either the platform is wrong or the key has changed!"

Essam23 commented 2 years ago

@phanluchoaofficial20 Try https://github.com/nilaoda/widevine-l3-guesser/tree/modified press on the extension icon to get the keys.

127744128-4a91d09b-a4f0-44b2-9e7b-2a9667d94cbe

@cavalia88 Not sure if this is the reason you got the message "Can't verify license request signature; either the platform is wrong or the key has changed!", but this extension will work only on Windows 64bit, Windows 32bit is not supported.

georgysaumen commented 2 years ago

I need key to decrypt video on galaxyplay.vn, not a base64 or HEX

cavalia88 commented 2 years ago

@phanluchoaofficial20 Try https://github.com/nilaoda/widevine-l3-guesser/tree/modified press on the extension icon to get the keys.

127744128-4a91d09b-a4f0-44b2-9e7b-2a9667d94cbe

@cavalia88 Not sure if this is the reason you got the message "Can't verify license request signature; either the platform is wrong or the key has changed!", but this extension will work only on Windows 64bit, Windows 32bit is not supported.

@phanluchoaofficial20 - I tried using the modified link you mentioned. No luck. It shows "Current tab found no keys"

I'm using Windows 64bit and Google Chrome v92. Not sure what is the problem.

georgysaumen commented 2 years ago

@phanluchoaofficial20 Try https://github.com/nilaoda/widevine-l3-guesser/tree/modified press on the extension icon to get the keys. 127744128-4a91d09b-a4f0-44b2-9e7b-2a9667d94cbe @cavalia88 Not sure if this is the reason you got the message "Can't verify license request signature; either the platform is wrong or the key has changed!", but this extension will work only on Windows 64bit, Windows 32bit is not supported.

@phanluchoaofficial20 - I tried using the modified link you mentioned. No luck. It shows "Current tab found no keys"

I'm using Windows 64bit and Google Chrome v92. Not sure what is the problem.

Because of that page we must have a account with have registered package like galaxyplay.vn I have mentioned

Essam23 commented 2 years ago

@phanluchoaofficial20 What is in HEX is the key that we get using @Satsuoni extension, you could upload your modified version of the extension that will help @Satsuoni to modify his. You could make a fork from @Satsuoni repository then make a pull request that @Satsuoni could merge in his repository if he saw it as a good idea.

Essam23 commented 2 years ago

@cavalia88 Try using a portable Google Chrome, install only @Satsuoni extension on it.

https://sourceforge.net/projects/portableapps/files/Google%20Chrome%20Portable/GoogleChromePortable64_92.0.4515.107_online.paf.exe/download

Satsuoni commented 2 years ago

I test the latest version on "https://bitmovin.com/demos/drm". Doesn't generate the key, I only see this message inside the chrome console: "Can't verify license request signature; either the platform is wrong or the key has changed!"

That site is the only one with DRM I can check at the moment, and it works? So I am not sure what is wrong in your case. Which Widevine version do you have?

Hello @Satsuoni ,

Can you update your extension again how to display key by popup instead of opening F12 like this: This will be avoid google fix and avoid the website want to get key block open F12!

Thanks!

I don't like alert popups, so I am not going to change to that. That said, I think there is a fork that does something similar to what you want, or you can just replace console.log with alert in content_key_decryption.js

cavalia88 commented 2 years ago

That site is the only one with DRM I can check at the moment, and it works? So I am not sure what is wrong in your case. Which Widevine version do you have?

I finally managed to get the extension to work by using Chrome v89 (64 bit).

It does not work on v92. Not sure whether it works with V90 or v91.

You may need to tinker with the code to allow it to work on the latest v92.

Satsuoni commented 2 years ago

I finally managed to get the extension to work by using Chrome v89 (64 bit).

It does not work on v92. Not sure whether it works with V90 or v91.

You may need to tinker with the code to allow it to work on the latest v92.

Umm? scr5

Please tell me your Widevine version

cavalia88 commented 2 years ago

Umm? scr5

Please tell me your Widevine version

I downloaded the latest portable version of Chrome v92 and it now working well.

Not sure what was the cause of the earlier problems. Could have been some conflict with other existing extensions.

Many thanks for your assistance and this wonderful app/code.

Satsuoni commented 2 years ago

I downloaded the latest portable version of Chrome v92 and it now working well.

Not sure what was the cause of the earlier problems. Could have been some conflict with other existing extensions.

Many thanks for your assistance and this wonderful app/code.

Sure, no problem... Just in case, a few notes (in general, not to anybody in particular):

  1. This code should work with Widevine 4.10.2209 and nothing else. New versions will probably mean new keys
  2. I only replaced decryption code from the original repo and added scripts that I used for extraction. The JS part is Tomer8007's code, mostly, I just added Wasm bridge. My current JS skill is highly degraded and knowledge of Chrome extension structure nonexistent.
  3. Please read the Readme, especially the "lazy" part >_>
  4. Since the JS parts are not compiled/packaged, they are easy to modify in text editor. Basic things like output format change can be done locally at one's convenience.
  5. As mentioned above, the main goal of the repo is more or less a rudimentary tutorial, so that other people could more easily replicate the work when necessary. While key extraction may be extremely convoluted, white box extraction process should work as long as dll can be emulated. In the worst case, one could log all the assembly code and write a simple wrapper for that ;) (warning: my dump of assembly code was ~100Gb+)
Essam23 commented 2 years ago

@Satsuoni How could I modify the the extension to run on Windows 32bit? I have an old CPU which can run Windows 7 64bit and Windows 10 32bit. I have both of the operating systems installed on my PC, but Windows 10 is my main operating system now.

Satsuoni commented 2 years ago

@Satsuoni How could I modify the the extension to run on Windows 32bit? I have an old CPU which can run Windows 7 64bit and Windows 10 32bit. I have both of the operating systems installed on my PC, but Windows 10 is my main operating system now.

No idea, really. What kind of error does it give? If it says "either the platform is wrong or the key has changed", then probably they use different key for 32-bit systems, and you would need to extract it separately.

xhlove commented 2 years ago

Have you tried z3 to help your reverse engineering works, maybe it can help you.

Sometimes, if you have the intermediate variables, then it can calculate the origin data.

https://github.com/Z3Prover/z3

Satsuoni commented 2 years ago

Have you tried z3 to help your reverse engineering works, maybe it can help you.

Sometimes, if you have the intermediate variables, then it can calculate the origin data.

https://github.com/Z3Prover/z3

No, did not try it... Pretty sure it'll run out of memory, though. Do wish I thought about that before, but I don't have much more time to dedicate to this problem anymore. (Cannot read Chinese without Google translate, either XD).

Essam23 commented 2 years ago

@Satsuoni This is the error message, could this problem caused by wasm_gsr.wasm being built on a 64bit operating system?

console