Integrate Unicorn emulator into WardenModule

Connected cross-platform emulation to module execution pipeline!

Integration Points:
- Added emulator_ member to WardenModule
- Initialize emulator in initializeModule() when HAVE_UNICORN defined
- Setup Windows API hooks automatically
- Ready to call module entry point via emulated execution

Changes:
- WardenModule now has moduleBase_ (0x400000 default)
- Emulator initialized with loaded module code
- Common Windows APIs hooked (VirtualAlloc, GetTickCount, etc.)
- processCheckRequest() prepared for emulated execution

Build Flow:
#ifdef HAVE_UNICORN
  → Use Unicorn emulator (Linux/macOS/ARM)
#elif _WIN32
  → Native Windows execution
#else
  → Platform not supported
#endif

Status:
 Emulator infrastructure integrated
 Module code loaded into emulated environment
 API hooks ready
 Entry point calling (TODO - needs callback struct setup)
 PacketHandler execution (TODO - needs implementation)

Next: Call module entry point with ClientCallbacks structure
This commit is contained in:
Kelsi 2026-02-12 03:04:08 -08:00
parent ea69cac526
commit f032ae8455
2 changed files with 54 additions and 9 deletions

View file

@ -11,6 +11,9 @@
namespace wowee {
namespace game {
// Forward declarations
class WardenEmulator;
/**
* Represents Warden callback functions exported by loaded module
*
@ -126,10 +129,12 @@ private:
std::vector<uint8_t> decryptedData_; // RC4 decrypted data
std::vector<uint8_t> decompressedData_; // zlib decompressed data
// Module execution context (for future native code execution)
// Module execution context
void* moduleMemory_; // Allocated executable memory region
size_t moduleSize_; // Size of loaded code
uint32_t moduleBase_; // Module base address (for emulator)
WardenFuncList funcList_; // Callback functions
std::unique_ptr<WardenEmulator> emulator_; // Cross-platform x86 emulator
// Validation and loading steps
bool verifyMD5(const std::vector<uint8_t>& data,