uKOM Extractor
[Only registered and activated users can see links. Click Here To Register...]
Licensed under GPLv3
Please provide credits to the original author (nickname and website) whenever you use part of this code or you think this helped you (obv. it is).
[Only registered and activated users can see links. Click Here To Register...]
Licensed under GPLv3
Please provide credits to the original author (nickname and website) whenever you use part of this code or you think this helped you (obv. it is).
Dear EPvP users,
I'm not expecting everyone to understand what is this and how to use it (nor compile it) but i just don't care.
I'm not going to support single users but whenever there's an issue you're pleased to report it [Only registered and activated users can see links. Click Here To Register...].
If you want (and i hope) to help me to improve/fix/optimize this software i would be really happy and feel free to do it, i will obv. insert credits to the README.md.
Wat iz dis?
It's a KOM Extractor, nothing really new for most of you, this is only a part of the uKOM Archiver project that's actually private, i posted it for science and i hope it will be useful for all of you.
Steps
- Interpret parsed arguments (nothing really "OH MY GAWD THIS IS AWESOME").
- Read KOM Header.
- Read XML Header and save it as KOMInfo.xml.
- Extracts file buffers.
Everything is godly ordered and to understand the KOM structure just look at the structs.
Helping you:
First 72 Bytes.
#define HEADER_SIZE 72
PHP Code:
static struct _KOM_HEADER
{
char Header[28]; // "KOG GC TEAM MASSFILE V.0.3.".
unsigned long ArchiverVersion; // I'm not sure about this entry.
char CRC[5]; // Probably it's not only a CRC (and CRC2) but may be something more, i'm reversing again it.
unsigned long XMLSize; // Size of the XML.
unsigned long FilesNumber; // Number of files in the KOM.
unsigned long CRC2; // Read CRC
} KOMHeader;
PHP Code:
static struct _XML_ENTRY
{
char FName[100]; // File name.
int Size; // Uncompressed file size.
int CompressedSize; // Compressed file size.
char Checksum[8]; // EQ FileTime.
char FileTime[8]; // EQ Checksum.
int Algorithm; // Algorithm type.
// - Type 0: Nothing.
// - Type 1: Compressed. (ZLib)
// - Type 2: Encrypted & Compressed.
} Files;
Easy, isn't it?
Licenses (and libraries/third party content)
RapidXML (MIT License)
ZLib (MiniZ) (GPL? I don't remember and i'm too lazy to verify)
AdvConsole (I don't remember)
I will release the entire uKOM Archiver (LUA Decryption included) only when some people will work on this.
In-Action Screenshot
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
d3vil401 ([Only registered and activated users can see links. Click Here To Register...])
ESEmu Project ([Only registered and activated users can see links. Click Here To Register...])
ESEmu Project ([Only registered and activated users can see links. Click Here To Register...])