Update readme with new features

This commit is contained in:
SuperUserek 2026-03-05 11:23:58 +00:00
parent 164ed468e6
commit 256c408acd

View File

@ -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. 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. 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 # ✨ Features
* 🔑 Automatically downloads known AES keys from multiple sources * 🔑 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** * 🧠 Supports **AES-128 / AES-192 / AES-256**
* 🔍 Tests multiple AES modes automatically * 🔍 Tests multiple AES modes automatically
* ⚡ Fast key testing
* 🧩 Supports **custom user-provided AES keys** * 🧩 Supports **custom user-provided AES keys**
* 📦 Extracts valid payload automatically * 📦 Extracts valid payload automatically
* 📁 Supports custom output directories * 📁 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 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. 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 # ⚙️ Requirements
Python **3.8+** Python **3.8+**
@ -58,10 +82,21 @@ python3 autokeybox_decoder.py keybox_file.dat
The script will: The script will:
1. Download key lists 1. Download key lists (if cache is outdated)
2. Parse AES keys 2. Save them to **keys.txt**
3. Try AES modes automatically 3. Parse AES keys
4. Save the decrypted payload if successful 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: Supported key sizes:
| AES Type | Hex Length | | AES Type | Hex Length |
| -------- | ---------- | |--------|--------|
| AES-128 | 32 | | AES-128 | 32 |
| AES-192 | 48 | | AES-192 | 48 |
| AES-256 | 64 | | AES-256 | 64 |
@ -85,7 +120,7 @@ Supported key sizes:
# 🔒 Only Use Custom Key # 🔒 Only Use Custom Key
Skip downloading key lists: Skip downloading key lists and only try your key:
```bash ```bash
python3 autokeybox_decoder.py keybox_file.dat \ python3 autokeybox_decoder.py keybox_file.dat \
@ -221,3 +256,9 @@ This tool is intended for:
* reverse engineering * reverse engineering
Use responsibly and only on data you are authorized to analyze. Use responsibly and only on data you are authorized to analyze.
---
# 👨‍💻 Author
**SuperUserek**