Chrome/Firefox extension for pen-testing to retrieve encryption keys of Widevine protected content !DON'T DECRYPT CONTENT UNLESS YOU HAVE THE RIGHT TO DO IT!
Go to file
FoxRefire 101d9cb6b8 NextGen🎉
2024-04-19 05:48:32 +09:00
pyodide NextGen🎉 2024-04-19 05:48:32 +09:00
python NextGen🎉 2024-04-19 05:48:32 +09:00
wheels NextGen🎉 2024-04-19 05:48:32 +09:00
.gitattributes Initial commit 2024-04-09 08:46:15 +09:00
background.js NextGen🎉 2024-04-19 05:48:32 +09:00
content.js Initial commit 2024-04-09 08:46:15 +09:00
icon.png Initial commit 2024-04-09 08:46:15 +09:00
inject.js Initial commit 2024-04-09 08:46:15 +09:00
LICENSE Initial commit 2024-04-09 08:46:15 +09:00
manifest.json NextGen🎉 2024-04-19 05:48:32 +09:00
popup_drawList.js Custom schemes(attempt 1) 2024-04-13 06:05:09 +09:00
popup.html NextGen🎉 2024-04-19 05:48:32 +09:00
popup.js NextGen🎉 2024-04-19 05:48:32 +09:00
README.md NextGen🎉 2024-04-19 05:48:32 +09:00

WVGuesserExtension-NextGen

Extension works standalone. Not anymore need WVCore.Server API setup!

Instalation

  1. Donwload or clone this code

  2. At the same directory of manifest.json(root directory of this extension), put the device file named device.wvd

  3. Install extension

    • Firefox

      1. Navigate to about:debugging#/runtime/this-firefox

      2. Load temporary addon

    • Chrome

      1. Navigate to chrome://extensions/

      2. Load unpacked

    • Kiwi Browser(Android) NOTE:Remote API needed; Not work with Termux for now

      1. Navigate to ︙ --> Extensions

      2. +(from .zip/.crx/.user.js)

Demo

demo.webm

Todo

  • Improve UI

Disclaimer

This extension is for educational and researchment purpose.

Only use it for content for which you own the rights and do not use it for piracy purposes.

How it works?

diagram drawio

  1. inject.js injected by content.js gets Widevine PSSH by hooking EME.
  2. background.js fetches POST URLs/Headers
  3. PSSHs will passed by this route inject.js-->content.js-->background.js-->popup.js
  4. PSSHs+URLs+Headers will passed by this route background.js-->popup.js
  5. popup.js will contols UI(popup.html)
  6. User input into UI
  7. popup.js sends key request to Guesser API