diff --git a/AutoKeyboxDecoder/Readme.md b/AutoKeyboxDecoder/Readme.md index 01d006a..6f3374f 100644 --- a/AutoKeyboxDecoder/Readme.md +++ b/AutoKeyboxDecoder/Readme.md @@ -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,16 +111,16 @@ 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 | +|--------|--------| +| AES-128 | 32 | +| AES-192 | 48 | +| AES-256 | 64 | --- # 🔒 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**