widevine

package
v1.54.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 20, 2022 License: OSL-3.0 Imports: 12 Imported by: 3

README

Widevine

Theatricality and deception, powerful agents to the uninitiated.

But we are initiated, aren’t we, Bruce?

The Dark Knight Rises (2012)

L1

  • Amazon needs AndroidCDM L1 for 720P/1080P/4K
  • Disney+ needs Android L1 for 1080P+

Where did proto file come from?

https://github.com/TDenisM/widevinedump/tree/main/pywidevine/cdm/formats

Where to download L3 CDM?

I cant host those here for legal reasons, but you should be able to download them from here:

https://github.com/Jnzzi/4464_L3-CDM

or search:

https://github.com/search?q=L3+CDM

How to dump L3 CDM?

Install Android Studio. Then create Android virtual device:

API Level ABI Target
24 x86 Android 7.0 (Google APIs)

Then download Widevine Dumper. Then install:

pip install -r requirements.txt

Then download Frida server, example file:

frida-server-15.1.22-android-x86.xz

Then start Frida server:

adb root
adb push frida-server-15.1.17-android-x86 /data/frida-server
adb shell chmod +x /data/frida-server
adb shell /data/frida-server

Then start Android Chrome and visit Bitmovin demo. If you receive this prompt:

bitmovin.com wants to play protected content. Your device’s identity will be verified by Google.

Click ALLOW. Then start dumper:

python dump_keys.py

Once you see "Hooks completed", go back to Chrome, scroll down and click LOAD. Result:

2022-05-21 02:10:52 PM - Helpers.Scanner - 49 - INFO - Key pairs saved at
key_dumps\Android Emulator 5554/private_keys/4464/2770936375

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client added in v1.54.3

type Client struct {
	ID          []byte
	Private_Key []byte
	Raw_Key_ID  string
	Raw_PSSH    string
}

func (Client) Key_ID added in v1.54.5

func (c Client) Key_ID() ([]byte, error)

func (Client) Module added in v1.54.3

func (c Client) Module() (*Module, error)

type Content added in v1.54.3

type Content struct {
	Key  []byte
	Type uint64
}

func (Content) String added in v1.54.3

func (c Content) String() string

type Contents added in v1.54.3

type Contents []Content

func (Contents) Content added in v1.54.3

func (c Contents) Content() *Content

type Module

type Module struct {
	// contains filtered or unexported fields
}

func (Module) Marshal added in v1.54.1

func (m Module) Marshal() ([]byte, error)

func (Module) Unmarshal added in v1.54.1

func (m Module) Unmarshal(response []byte) (Contents, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL