forked from SuperUserek/MyDRMTools
Update readme with new features
This commit is contained in:
parent
164ed468e6
commit
256c408acd
@ -2,7 +2,8 @@
|
||||
|
||||
A Python tool that attempts to decrypt **LG firmware / keybox / encrypted blobs** by automatically testing known AES keys and AES modes.
|
||||
|
||||
The script downloads multiple public key lists and tries them using several AES modes and IV strategies.
|
||||
The script downloads multiple public key lists, merges them, and stores them locally in **keys.txt**.
|
||||
Keys are refreshed **once per day** unless forced.
|
||||
|
||||
If a valid payload is found, the decrypted payload is extracted and saved.
|
||||
|
||||
@ -11,9 +12,11 @@ If a valid payload is found, the decrypted payload is extracted and saved.
|
||||
# ✨ Features
|
||||
|
||||
* 🔑 Automatically downloads known AES keys from multiple sources
|
||||
* 💾 Saves keys locally to **keys.txt**
|
||||
* 🔄 Key lists update **once per day**
|
||||
* ⚡ `--force-update-keys` option to refresh keys immediately
|
||||
* 🧠 Supports **AES-128 / AES-192 / AES-256**
|
||||
* 🔍 Tests multiple AES modes automatically
|
||||
* ⚡ Fast key testing
|
||||
* 🧩 Supports **custom user-provided AES keys**
|
||||
* 📦 Extracts valid payload automatically
|
||||
* 📁 Supports custom output directories
|
||||
@ -28,14 +31,35 @@ By default the script downloads keys from:
|
||||
|
||||
https://raw.githubusercontent.com/openlgtv/epk2extract/refs/heads/master/keys/AES.key
|
||||
|
||||
### 2️⃣ DRMLAB's KnownKeys ( please contribute and add more working keys to extract keyboxes )
|
||||
### 2️⃣ DRMLAB KnownKeys
|
||||
|
||||
https://git.drmlab.io/SuperUserek/MyDRMTools/AutoKeyboxDecoder/KnownKeys.txt
|
||||
(please contribute and add more working keys)
|
||||
|
||||
https://git.drmlab.io/SuperUserek/MyDRMTools/raw/branch/main/AutoKeyboxDecoder/KnownKeys.txt
|
||||
|
||||
These lists contain AES keys used in various LG firmware and DRM systems.
|
||||
|
||||
---
|
||||
|
||||
# 🔑 Key Cache (keys.txt)
|
||||
|
||||
Downloaded keys are stored locally in:
|
||||
|
||||
```
|
||||
keys.txt
|
||||
```
|
||||
|
||||
Behavior:
|
||||
|
||||
| Condition | Action |
|
||||
|--------|--------|
|
||||
| first run | downloads keys |
|
||||
| same day | uses cached keys |
|
||||
| next day | automatically refreshes keys |
|
||||
| `--force-update-keys` | forces immediate refresh |
|
||||
|
||||
---
|
||||
|
||||
# ⚙️ Requirements
|
||||
|
||||
Python **3.8+**
|
||||
@ -58,10 +82,21 @@ python3 autokeybox_decoder.py keybox_file.dat
|
||||
|
||||
The script will:
|
||||
|
||||
1. Download key lists
|
||||
2. Parse AES keys
|
||||
3. Try AES modes automatically
|
||||
4. Save the decrypted payload if successful
|
||||
1. Download key lists (if cache is outdated)
|
||||
2. Save them to **keys.txt**
|
||||
3. Parse AES keys
|
||||
4. Try AES modes automatically
|
||||
5. Save the decrypted payload if successful
|
||||
|
||||
---
|
||||
|
||||
# 🔄 Force Update Key Lists
|
||||
|
||||
Force re-download and rebuild the key cache:
|
||||
|
||||
```bash
|
||||
python3 autokeybox_decoder.py keybox_file.dat --force-update-keys
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@ -76,7 +111,7 @@ python3 autokeybox_decoder.py keybox_file.dat --key 00112233445566778899AABBCCDD
|
||||
Supported key sizes:
|
||||
|
||||
| AES Type | Hex Length |
|
||||
| -------- | ---------- |
|
||||
|--------|--------|
|
||||
| AES-128 | 32 |
|
||||
| AES-192 | 48 |
|
||||
| AES-256 | 64 |
|
||||
@ -85,7 +120,7 @@ Supported key sizes:
|
||||
|
||||
# 🔒 Only Use Custom Key
|
||||
|
||||
Skip downloading key lists:
|
||||
Skip downloading key lists and only try your key:
|
||||
|
||||
```bash
|
||||
python3 autokeybox_decoder.py keybox_file.dat \
|
||||
@ -221,3 +256,9 @@ This tool is intended for:
|
||||
* reverse engineering
|
||||
|
||||
Use responsibly and only on data you are authorized to analyze.
|
||||
|
||||
---
|
||||
|
||||
# 👨💻 Author
|
||||
|
||||
**SuperUserek**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user