From 7a3b48831bfc9c4aa8c39c1e42d5bf5dd73e43c5 Mon Sep 17 00:00:00 2001 From: boris Date: Tue, 1 Jan 2019 20:31:51 +1300 Subject: whole buncha fixes & switching to vmp --- csgo-loader/csgo-server/Security/Encryption.cpp | 22 ++++------------------ csgo-loader/csgo-server/Security/Encryption.hpp | 12 ++++++++++-- 2 files changed, 14 insertions(+), 20 deletions(-) (limited to 'csgo-loader/csgo-server/Security') diff --git a/csgo-loader/csgo-server/Security/Encryption.cpp b/csgo-loader/csgo-server/Security/Encryption.cpp index f4681b8..b42b4ab 100644 --- a/csgo-loader/csgo-server/Security/Encryption.cpp +++ b/csgo-loader/csgo-server/Security/Encryption.cpp @@ -580,13 +580,7 @@ namespace Wrapper // Generate random bytes to use as encryption key. if(CryptGenRandom(m_CryptProvider, RandomBytesCount, RandomBytes)) - { - m_EncryptionKey.insert( - m_EncryptionKey.begin(), - RandomBytes, - RandomBytes + RandomBytesCount - ); - } + std::memcpy(m_EncryptionKey, RandomBytes, RandomBytesCount); // Release context. if(m_CryptProvider) @@ -597,7 +591,7 @@ namespace Wrapper { // If an encryption key is provided, initialise the wrapper with // the passed parameter. - std::copy(EncryptionKey.begin(), EncryptionKey.end(), m_EncryptionKey.begin()); + std::copy(EncryptionKey.begin(), EncryptionKey.end(), m_EncryptionKey); if(EncryptionKey.empty()) Start(); @@ -608,11 +602,7 @@ namespace Wrapper // Encrypt outgoing data. ByteArray Encrypted; - #ifdef DEBUG - Encrypted = Data; - #else - Aes256::encrypt(m_EncryptionKey, Data, Encrypted); - #endif + Aes256::encrypt(GetKey(), Data, Encrypted); return Encrypted; } @@ -622,11 +612,7 @@ namespace Wrapper // Decrypt incoming data. ByteArray Decrypted; - #ifdef DEBUG - Decrypted = Data; - #else - Aes256::decrypt(m_EncryptionKey, Data, Decrypted); - #endif + Aes256::decrypt(GetKey(), Data, Decrypted); return Decrypted; } diff --git a/csgo-loader/csgo-server/Security/Encryption.hpp b/csgo-loader/csgo-server/Security/Encryption.hpp index b1c49dc..a69b349 100644 --- a/csgo-loader/csgo-server/Security/Encryption.hpp +++ b/csgo-loader/csgo-server/Security/Encryption.hpp @@ -71,7 +71,7 @@ namespace Wrapper // Encryption wrapper. class Encryption { - ByteArray m_EncryptionKey; + uint8_t m_EncryptionKey[32]; HCRYPTPROV m_CryptProvider; public: @@ -87,7 +87,15 @@ namespace Wrapper // Exposes the encryption key. ByteArray GetKey() { - return m_EncryptionKey; + ByteArray TemporaryKey; + + TemporaryKey.insert( + TemporaryKey.begin(), + m_EncryptionKey, + m_EncryptionKey + sizeof m_EncryptionKey + ); + + return TemporaryKey; } }; } \ No newline at end of file -- cgit v1.2.3