summaryrefslogtreecommitdiff
path: root/csgo-loader/csgo-server
diff options
context:
space:
mode:
authorboris <wzn@moneybot.cc>2019-01-02 21:11:03 +1300
committerboris <wzn@moneybot.cc>2019-01-02 21:11:03 +1300
commitc0f1354a301ce2a2fc867a89fafdde4571c07c02 (patch)
treeea628b53a41f7d532efe100b94a41e4ca0429767 /csgo-loader/csgo-server
parentd1ec3d3bb3a87a08e1c9348ca6e482549ebde664 (diff)
6IX9INE "Billy" (WSHH Exclusive - Official Music Video)
Diffstat (limited to 'csgo-loader/csgo-server')
-rw-r--r--csgo-loader/csgo-server/Login/RemoteLogin.cpp4
-rw-r--r--csgo-loader/csgo-server/Login/RemoteLogin.hpp3
-rw-r--r--csgo-loader/csgo-server/Networking/TCPServer.cpp6
-rw-r--r--csgo-loader/csgo-server/Server.cpp12
4 files changed, 16 insertions, 9 deletions
diff --git a/csgo-loader/csgo-server/Login/RemoteLogin.cpp b/csgo-loader/csgo-server/Login/RemoteLogin.cpp
index 3cc5c77..2f30e7f 100644
--- a/csgo-loader/csgo-server/Login/RemoteLogin.cpp
+++ b/csgo-loader/csgo-server/Login/RemoteLogin.cpp
@@ -33,6 +33,8 @@ namespace Login
return RemoteLoginResponse::INVALID_CREDENTIALS;
// User failed to obtain HWID?
+ printf("[ => ] User HWID: %llx\n", m_Header.m_HardwareId);
+
if(!m_Header.m_HardwareId)
{
// TODO: Shadow ban the user.
@@ -41,7 +43,7 @@ namespace Login
}
// TODO: Check if the HWID is present in DB.
- if(false)
+ if(m_Header.m_HardwareId != 0x2F769B06FA897376)
return RemoteLoginResponse::INVALID_HARDWARE;
// TODO: Check if the user has a subscription.
diff --git a/csgo-loader/csgo-server/Login/RemoteLogin.hpp b/csgo-loader/csgo-server/Login/RemoteLogin.hpp
index f69e588..c3ceea3 100644
--- a/csgo-loader/csgo-server/Login/RemoteLogin.hpp
+++ b/csgo-loader/csgo-server/Login/RemoteLogin.hpp
@@ -21,7 +21,7 @@ namespace Login
char m_Password[128];
// This will provide the hardware ID of the machine.
- uint32_t m_HardwareId;
+ uint64_t m_HardwareId;
// These fields will be set according
// to security check results.
@@ -45,6 +45,7 @@ namespace Login
NO_SUBSCRIPTION = 'G', // '[000G:{HWID}] No active subscription.'
ACCESS_SPECIAL_USER = 'H', // Allows the user to continue, sets the m_SpecialAccess var
};
+
// Implementation of the server (handles login bullshit).
class RemoteLoginServer
{
diff --git a/csgo-loader/csgo-server/Networking/TCPServer.cpp b/csgo-loader/csgo-server/Networking/TCPServer.cpp
index 37a21bc..0652fe5 100644
--- a/csgo-loader/csgo-server/Networking/TCPServer.cpp
+++ b/csgo-loader/csgo-server/Networking/TCPServer.cpp
@@ -22,12 +22,6 @@ namespace Networking
if(Result == -1)
printf("[ E! ] Failed to send %zd bytes to %s. (Socket %04Ix)\n", Bytes.size(), m_IpAddress, m_Socket);
-
- // Stay in sync with client.
- ByteArray Array = ReceiveRawBytes();
-
- if(Array.empty())
- printf("[ E! ] No client reply.\n");
}
ByteArray TCPConnection::ReceiveRawBytes()
diff --git a/csgo-loader/csgo-server/Server.cpp b/csgo-loader/csgo-server/Server.cpp
index 580c17a..a78bb9a 100644
--- a/csgo-loader/csgo-server/Server.cpp
+++ b/csgo-loader/csgo-server/Server.cpp
@@ -1,6 +1,16 @@
#include <Server.hpp>
-void ConnectionHandler(Networking::TCPConnection &Connection) { }
+void ConnectionHandler(Networking::TCPConnection &Connection) {
+ Login::RemoteLoginServer LoginServer;
+
+ ByteArray LoginHeader = Connection.ReceiveBytes();
+
+ if(!LoginServer.Start(LoginHeader))
+ return;
+
+ ByteArray LoginReply = LoginServer.GetResponse();
+ Connection.SendBytes(LoginReply);
+}
int __stdcall WinMain(HINSTANCE, HINSTANCE, char*, int)
{