Theatricality and deception, powerful agents to the uninitiated. But we are initiated, aren’t we, Bruce?
The Dark Knight Rises (2012)
Widevine implementation. first Widevine commit was May 21 2022:
https://github.com/gucio321/mech/commit/9d3dff51
install Android Studio [1]. then create Android virtual device:
- abi
- x86
- api level
- 24
- target
- Android 7.0 (Google APIs)
then download Widevine Dumper [2]. Then install:
pip install -r requirements.txt
then download Frida server [3], example file:
frida-server-15.1.17-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 Shaka Player [4]. click the green play button. 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:
$env:PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = 'python'
python dump_keys.py
once you see "Hooks completed", go back to Chrome and click the green play button again. 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
- https://developer.android.com/studio
- https://github.com/wvdumper/dumper
- https://github.com/frida/frida/releases
- https://integration.widevine.com/player
https://github.com/rlaphoenix/pywidevine/blob/master/pywidevine/license_protocol.proto