mirror of
https://github.com/OPSnet/xld_logchecker.py.git
synced 2026-01-17 00:06:53 -05:00
367cbed265f255d43b61a9a6e7548b2eb413c8ef
XLD Log Signer
Based heavily on barrybingo/xld_sign. This is a complete disassembly of the XLD log signing algorithm, re-implemented in Python 3.6+. Includes an option to fix those pesky edited logs.
Usage
usage: xld.py [-h] (--verify | --sign) FILE
Verifies and resigns XLD logs
positional arguments:
FILE path to the log file
optional arguments:
-h, --help show this help message and exit
--verify verify a log
--sign sign or fix an existing log
Overview
The final code isn't pretty, but it is simple enough to describe the algorithm.
- The log is encoded as UTF-8 and hashed with a SHA-256 variant that uses a different IV.
- The digest is converted to hex and the string
\nVersion=0001is appended onto the end. - The versioned hex-digest is then passed through an unidentified scrambling function that operates on pairs of bytes (open an issue if you recognize it).
- The resulting bytestring is then encoded using a 65-character lookup table with a strange mapping.
Languages
Python
100%