Here I will summarize the majority of all info collected from 2014-15 to 2020 (today).
King of Kings 3 runs on the "GKK2" engine.
GKK is still unidentified, but it appears that a few games may run on this engine.
~If anyone finds out what GKK means, you will be credited in the final documentation.
LPQ files are a type of custom container file for LZO streams.
You can use lzo.net to decompress these streams at a given byte. Decompression with
this method yields viable data, however there is missing support for the Chinese GB-2312
~If anyone can contribute to figuring this out, you will be credited in the final documentation.
BHL files are still unknown, but are directly involved with LPQ interpretation or functionality.
These appear to either be some sort of data table.
LagerPacket.dll and LagerPacketOMF.dll are responsible for handling the LPQ/BHL system.
Detect It Easy (*DIE) reveals that WE.exe and LagerPacket.dll are both riddled with encryption and obfuscation.
It is safe to assume most of the operational files (exe/dll)s are all secured. *See Figure 1.a
After "unlocking" the exe's and dll's we will be able to use tools like IDA and other disassemblers
with better results.
Once WE.exe is "unlocked", we will be able to easily follow send(), recv(), sendto(), and recvfrom() calls in a debugger
From there, work on a dedicated server can truly begin.
Removing these protections will have to be done one by one and will be highly tedious.
Removing even one protection can take an hour or two of work, if not more.
As I remove protections, I will document each step. Considering they're all protected with
the same things, they might all be done in the same order.
We're super close to looking under the hood and finding out what's really going on
with our beloved game. And hopefully pretty soon we'll be playing it again.
Check out my official King of Kings III reverse engineering project thread!