mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-02-20 00:04:23 -05:00
Added MD5 hashing and extensive testing documentation for future attempts at supporting strict Warden servers like Warmane. Enhancements: - Added MD5 hash support to Crypto class (OpenSSL-based) - Tested 6 different module ACK response formats against Warmane - Analyzed module packet structure (37 bytes: opcode + seed + trailing) - Enhanced debug logging for plaintext and encrypted Warden data Documentation: - WARDEN_IMPLEMENTATION.md: Complete implementation guide with all attempts - WARDEN_QUICK_REFERENCE.md: Quick troubleshooting and testing guide Test Results (Warmane): - Empty ACK (0 bytes): Server silent - XOR/MD5 checksum (18 bytes): Server silent - Single byte (1 byte): Server disconnects (rejected) - Echo trailing (20 bytes): Server silent - Result + SHA1 (21 bytes): Server silent Conclusion: - Current implementation works with permissive/disabled Warden servers - Warmane requires module execution or undocumented response format - Full documentation provided for future reverse engineering attempts Next steps documented: 1. Capture packets from real WoW client (protocol analysis) 2. Implement module execution engine (months of work) 3. Test with local AzerothCore server
34 lines
813 B
C++
34 lines
813 B
C++
#pragma once
|
|
|
|
#include <vector>
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
namespace wowee {
|
|
namespace auth {
|
|
|
|
class Crypto {
|
|
public:
|
|
static std::vector<uint8_t> sha1(const std::vector<uint8_t>& data);
|
|
static std::vector<uint8_t> sha1(const std::string& data);
|
|
|
|
/**
|
|
* MD5 hash (16 bytes)
|
|
*/
|
|
static std::vector<uint8_t> md5(const std::vector<uint8_t>& data);
|
|
static std::vector<uint8_t> md5(const std::string& data);
|
|
|
|
/**
|
|
* HMAC-SHA1 message authentication code
|
|
*
|
|
* @param key Secret key
|
|
* @param data Data to authenticate
|
|
* @return 20-byte HMAC-SHA1 hash
|
|
*/
|
|
static std::vector<uint8_t> hmacSHA1(const std::vector<uint8_t>& key,
|
|
const std::vector<uint8_t>& data);
|
|
};
|
|
|
|
} // namespace auth
|
|
} // namespace wowee
|