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.
|
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**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user