"Games" { "csgo" { "Addresses" { "host_client" { "windows" { "signature" "host_client" "read" "46" } "linux" { "signature" "host_client" } } "CHLTVServer::m_DemoRecorder" { "windows" { "signature" "CHLTVServer::GetRecordingDemoFilename" "read" "2" } "linux" { "signature" "CHLTVServer::GetRecordingDemoFilename" "read" "10" } } } "Offsets" { "CBaseServer::BroadcastPrintf" { "windows" "39" "linux" "40" } "CHLTVServer::ConnectClient" { "windows" "54" "linux" "55" } "CHLTVServer::RejectConnection" { "windows" "52" "linux" "53" } "CHLTVServer::GetChallengeType" { "windows" "59" "linux" "60" } "CBaseClient::ActivatePlayer" { "windows" "27" "linux" "65" } "CBaseClient::Disconnect" { "linux" "16" } "CHLTVServer::Shutdown" { "windows" "45" "linux" "46" } "CHLTVDirector::m_iPVSEntity" { "windows" "32" "linux" "32" } "CHLTVDirector::m_vPVSOrigin" { "windows" "36" "linux" "36" } "CHLTVDirector::m_nNextShotTick" { "windows" "52" "linux" "52" } } "Signatures" { "host_client" { "library" "engine" "linux" "@host_client" // ping(CCommand const&) "Client ping times:\n" "windows" "\x55\x8B\xEC\x83\xE4\xC0\x8B\x4D\x08\x83\xEC\x34" } "CHLTVServer::BroadcastEventLocal" { "library" "engine" "linux" "@_ZN11CHLTVServer19BroadcastEventLocalEP10IGameEventb" // "SourceTV broadcast local event: %s\n" "windows" "\x55\x8B\xEC\x83\xEC\x4C\x53\x8B\xD9\xC7\x45\xB4\x2A\x2A\x2A\x2A\x56\x8D" } "CHLTVServer::GetRecordingDemoFilename" { "library" "engine" "linux" "@_ZN11CHLTVServer24GetRecordingDemoFilenameEv" "windows" "\x8B\x81\x2A\x2A\x2A\x2A\x81\xC1\x2A\x2A\x2A\x2A\x8B\x40\x2A\xFF\xE0" } // StartRecording and StopRecording are virtual, but get called directly in the linux binary.. // Need to add a detour. "CHLTVDemoRecorder::StartRecording" { "library" "engine" "linux" "@_ZN17CHLTVDemoRecorder14StartRecordingEPKcb" } "CHLTVDemoRecorder::StopRecording" { "library" "engine" "linux" "@_ZN17CHLTVDemoRecorder13StopRecordingEPK9CGameInfo" } } } "#default" { "#supported" { "engine" "orangebox_valve" } "Addresses" { "host_client" { "windows" { "signature" "host_client" "read" "92" } "linux" { "signature" "host_client" } } "CHLTVServer::m_DemoRecorder" { "windows" { "signature" "CHLTVServer::Shutdown" "read" "5" } "linux" { "signature" "CHLTVServer::Shutdown" "read" "12" } } } "Offsets" { "CNetChan::SendNetMsg" { "windows" "40" "linux" "41" } "CBaseClient::m_NetChannel" { "windows" "192" "linux" "196" } "CGameClient::ClientPrintf" { "linux" "24" } "CBaseServer::BroadcastPrintf" { "windows" "35" "linux" "36" } "CHLTVServer::ConnectClient" { "windows" "49" "linux" "50" } "CHLTVServer::RejectConnection" { "windows" "47" "linux" "48" } "CHLTVServer::GetChallengeType" { "windows" "54" "linux" "55" } "CBaseClient::ActivatePlayer" { "windows" "16" "linux" "56" } "CBaseClient::Disconnect" { "linux" "14" } "CHLTVServer::Shutdown" { "windows" "41" "linux" "42" } "CHLTVDirector::m_iPVSEntity" { "windows" "16" "linux" "16" } "CHLTVDirector::m_vPVSOrigin" { "windows" "20" "linux" "20" } "CHLTVDirector::m_nNextShotTick" { "windows" "40" "linux" "40" } } "Signatures" { "host_client" { "library" "engine" "linux" "@host_client" // ping(CCommand const&) "Client ping times:\n" "windows" "\x55\x8B\xEC\x51\x83\x3D\x2A\x2A\x2A\x2A\x01\x75\x2A" } "CHLTVServer::BroadcastEventLocal" { "library" "engine" "linux" "@_ZN11CHLTVServer19BroadcastEventLocalEP10IGameEventb" // "SourceTV broadcast local event: %s\n" "windows" "\x55\x8B\xEC\x81\xEC\x44\x04\x00\x00\x53" } "CHLTVServer::Shutdown" { "library" "engine" "linux" "@_ZN11CHLTVServer8ShutdownEv" // "HLTV server shutting down" "windows" "\x56\x8B\xF1\x8B\x86\x2A\x2A\x2A\x2A\x8D\x8E\x2A\x2A\x2A\x2A\xFF\x50\x2A\x8B\x86\x2A\x2A\x2A\x2A\x8D\x8E" } // StartRecording and StopRecording are virtual, but get called directly in the linux binary.. // Need to add a detour. "CHLTVDemoRecorder::StartRecording" { "library" "engine" "linux" "@_ZN17CHLTVDemoRecorder14StartRecordingEPKcb" } "CHLTVDemoRecorder::StopRecording" { "library" "engine" "linux" "@_ZN17CHLTVDemoRecorder13StopRecordingEv" } } } }