mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +00:00
Fix Warden module loading pipeline and HASH_REQUEST response
Fix critical skip/copy parsing bug where source pointer advanced for both skip and copy sections (skip has no source data). Implement real relocations using delta-encoded offsets. Strip RSA signature before zlib decompression. Load module when download completes and cache to disk. Add empirical hash testing against CR entries and compute SHA1(moduleImage) response with SHA1Randx key derivation for any seed.
This commit is contained in:
parent
f4f23eab7a
commit
388db59463
5 changed files with 225 additions and 78 deletions
|
|
@ -122,6 +122,10 @@ public:
|
|||
*/
|
||||
void unload();
|
||||
|
||||
const void* getModuleMemory() const { return moduleMemory_; }
|
||||
size_t getModuleSize() const { return moduleSize_; }
|
||||
const std::vector<uint8_t>& getDecompressedData() const { return decompressedData_; }
|
||||
|
||||
private:
|
||||
bool loaded_; // Module successfully loaded
|
||||
std::vector<uint8_t> md5Hash_; // Module identifier
|
||||
|
|
@ -133,6 +137,7 @@ private:
|
|||
void* moduleMemory_; // Allocated executable memory region
|
||||
size_t moduleSize_; // Size of loaded code
|
||||
uint32_t moduleBase_; // Module base address (for emulator)
|
||||
size_t relocDataOffset_ = 0; // Offset into decompressedData_ where relocation data starts
|
||||
WardenFuncList funcList_; // Callback functions
|
||||
std::unique_ptr<WardenEmulator> emulator_; // Cross-platform x86 emulator
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue