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
2024-05-05 06:46:07 +09:00
pyodide NextGen🎉 2024-04-19 05:48:32 +09:00
python Meta 2024-05-03 21:11:15 +09:00
wheels NextGen🎉 2024-04-19 05:48:32 +09:00
.gitattributes
.gitignore Create .gitignore 2024-04-19 06:42:19 +09:00
background.js Refactor: Code cleanup 2024-05-01 03:23:08 +09:00
content.js Clarify where PSSH is displayed on the console 2024-05-02 06:37:59 +09:00
CONTRIBUTION.md Typos 2024-04-22 22:12:01 +09:00
icon.png
inject.js
jsonview.js Record the history of key acquisition 2024-04-25 03:37:31 +09:00
LICENSE
manifest.json Bump version to 240504.1/315834b 2024-05-04 06:54:41 +09:00
popup_drawList.js [Refactor] Move some snippets 2024-04-25 03:41:58 +09:00
popup_showHistory.js History button should be always shown 2024-05-03 02:50:43 +09:00
popup_updateNotice.js Add update notice 2024-05-03 02:09:14 +09:00
popup.html thePlatform(rte.ie) 2024-05-03 19:21:17 +09:00
popup.js Change cursor while retrieving key 2024-05-03 02:35:48 +09:00
README.md Update README.md 2024-05-05 01:50:14 +09:00
selectRules.conf Update auto-select rules 2024-05-05 06:46:07 +09:00

WVGuesserExtension-NextGen

Extension works standalone.

Not anymore need WVCore.Server API setup!

Looking for legacy version?: https://github.com/FoxRefire/wvg/tree/legacy

Instalation

  1. Download or clone this code

  2. At the same directory of manifest.json(root directory of this extension), put the one of the following Android L3 CDM file(s).

    • Supported CDM Types

      1. device.wvd

      2. device_client_id_blob + device_private_key

      3. client_id.bin + private_key.pem

  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)

      1. Navigate to ︙ --> Extensions

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

Demo

Screencast_20240505_014046.webm

Todo

  • Improve UI
  • Localization
  • Cache pyodide to make guessing process faster

For contributors, see here: https://github.com/FoxRefire/wvg/blob/next/CONTRIBUTION.md

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?

image

  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 calls pywidevine script using pyodide in browser

Third-party libraries

Big Thanks and inspired by

https://github.com/emarsden/pssh-box-wasm/