Fetch localPlayerPawn

This commit is contained in:
a2x 2023-09-29 15:45:27 +10:00
parent 3e04750334
commit 2bc3e32c2d
14 changed files with 359 additions and 306 deletions

View File

@ -4,41 +4,72 @@
"name": "entityList", "name": "entityList",
"module": "client.dll", "module": "client.dll",
"pattern": "48 8B 0D ? ? ? ? 48 89 7C 24 ? 8B FA C1 EB", "pattern": "48 8B 0D ? ? ? ? 48 89 7C 24 ? 8B FA C1 EB",
"relative": true, "operations": [
"levels": 0, {
"offset": 0 "type": "ripRelative"
}
]
}, },
{ {
"name": "globalVars", "name": "globalVars",
"module": "client.dll", "module": "client.dll",
"pattern": "48 89 0D ? ? ? ? 48 89 41", "pattern": "48 89 0D ? ? ? ? 48 89 41",
"relative": true, "operations": [
"levels": 0, {
"offset": 0 "type": "ripRelative"
}
]
}, },
{ {
"name": "localPlayerController", "name": "localPlayerController",
"module": "client.dll", "module": "client.dll",
"pattern": "48 8B 05 ? ? ? ? 48 85 C0 74 4F", "pattern": "48 8B 05 ? ? ? ? 48 85 C0 74 4F",
"relative": true, "operations": [
"levels": 0, {
"offset": 0 "type": "ripRelative"
}
]
},
{
"name": "localPlayerPawn",
"module": "client.dll",
"pattern": "48 8D 05 ? ? ? ? C3 CC CC CC CC CC CC CC CC 48 83 EC ? 8B 0D",
"operations": [
{
"type": "ripRelative"
},
{
"type": "add",
"value": 280
}
]
}, },
{ {
"name": "viewAngles", "name": "viewAngles",
"module": "client.dll", "module": "client.dll",
"pattern": "48 8B 0D ? ? ? ? 48 8B 01 48 FF 60 30", "pattern": "48 8B 0D ? ? ? ? 48 8B 01 48 FF 60 30",
"relative": true, "operations": [
"levels": 1, {
"offset": 17680 "type": "ripRelative"
},
{
"type": "dereference"
},
{
"type": "add",
"value": 17680
}
]
}, },
{ {
"name": "viewMatrix", "name": "viewMatrix",
"module": "client.dll", "module": "client.dll",
"pattern": "48 8D 0D ? ? ? ? 48 C1 E0 06", "pattern": "48 8D 0D ? ? ? ? 48 C1 E0 06",
"relative": true, "operations": [
"levels": 0, {
"offset": 0 "type": "ripRelative"
}
]
} }
] ]
} }

View File

@ -4,49 +4,49 @@ public static class animationsystem_dll {
} }
public static class client_dll { public static class client_dll {
public const nint LegacyGameUI001 = 0x88D1A0; public const nint LegacyGameUI001 = 0x88D0B0;
public const nint Source2ClientUI001 = 0x87BB90; public const nint Source2ClientUI001 = 0x87BAA0;
public const nint Source2ClientPrediction001 = 0x79B2D0; public const nint Source2ClientPrediction001 = 0x79B240;
public const nint ClientToolsInfo_001 = 0x7270E0; public const nint ClientToolsInfo_001 = 0x727050;
public const nint Source2Client002 = 0x727100; public const nint Source2Client002 = 0x727070;
public const nint GameClientExports001 = 0x7270F0; public const nint GameClientExports001 = 0x727060;
public const nint EmptyWorldService001_Client = 0x48A9C0; public const nint EmptyWorldService001_Client = 0x48A900;
public const nint Source2ClientConfig001 = 0x471D50; public const nint Source2ClientConfig001 = 0x471C90;
} }
public static class engine2_dll { public static class engine2_dll {
public const nint SimpleEngineLoopService_001 = 0x1E44F0; public const nint SimpleEngineLoopService_001 = 0x1E47A0;
public const nint ClientServerEngineLoopService_001 = 0x1DA1C0; public const nint ClientServerEngineLoopService_001 = 0x1DA470;
public const nint KeyValueCache001 = 0x1D6560; public const nint KeyValueCache001 = 0x1D6810;
public const nint HostStateMgr001 = 0x1D3FA0; public const nint HostStateMgr001 = 0x1D4220;
public const nint GameEventSystemServerV001 = 0x1CF3C0; public const nint GameEventSystemServerV001 = 0x1CF640;
public const nint GameEventSystemClientV001 = 0x1CF3B0; public const nint GameEventSystemClientV001 = 0x1CF630;
public const nint EngineServiceMgr001 = 0x1CACD0; public const nint EngineServiceMgr001 = 0x1CAF50;
public const nint VProfService_001 = 0x1B8C60; public const nint VProfService_001 = 0x1B8CE0;
public const nint ToolService_001 = 0x1B79C0; public const nint ToolService_001 = 0x1B7A40;
public const nint StatsService_001 = 0x1B2C40; public const nint StatsService_001 = 0x1B2CC0;
public const nint SplitScreenService_001 = 0x1AFEB0; public const nint SplitScreenService_001 = 0x1AFF30;
public const nint SoundService_001 = 0x1AAA00; public const nint SoundService_001 = 0x1AAA80;
public const nint ScreenshotService001 = 0x1A68D0; public const nint ScreenshotService001 = 0x1A6950;
public const nint RenderService_001 = 0x1A3C30; public const nint RenderService_001 = 0x1A3CB0;
public const nint NetworkService_001 = 0x1A3740; public const nint NetworkService_001 = 0x1A37C0;
public const nint NetworkServerService_001 = 0x19E7E0; public const nint NetworkServerService_001 = 0x19E860;
public const nint NetworkP2PService_001 = 0x19A1F0; public const nint NetworkP2PService_001 = 0x19A270;
public const nint NetworkClientService_001 = 0x193E20; public const nint NetworkClientService_001 = 0x193EA0;
public const nint MapListService_001 = 0x18CE60; public const nint MapListService_001 = 0x18CEE0;
public const nint InputService_001 = 0x17ABD0; public const nint InputService_001 = 0x17AC50;
public const nint GameUIService_001 = 0x175690; public const nint GameUIService_001 = 0x175710;
public const nint GameResourceServiceServerV001 = 0x1733F0; public const nint GameResourceServiceServerV001 = 0x173470;
public const nint GameResourceServiceClientV001 = 0x1733E0; public const nint GameResourceServiceClientV001 = 0x173460;
public const nint BugService001 = 0x16C410; public const nint BugService001 = 0x16C490;
public const nint BenchmarkService001 = 0x16ABE0; public const nint BenchmarkService001 = 0x16AC60;
public const nint VENGINE_GAMEUIFUNCS_VERSION005 = 0x118300; public const nint VENGINE_GAMEUIFUNCS_VERSION005 = 0x118380;
public const nint EngineGameUI001 = 0x1175C0; public const nint EngineGameUI001 = 0x117640;
public const nint INETSUPPORT_001 = 0xE6DA0; public const nint INETSUPPORT_001 = 0xE6E20;
public const nint Source2EngineToServerStringTable001 = 0xA1820; public const nint Source2EngineToServerStringTable001 = 0xA18A0;
public const nint Source2EngineToServer001 = 0x8B650; public const nint Source2EngineToServer001 = 0x8B6D0;
public const nint Source2EngineToClientStringTable001 = 0x84050; public const nint Source2EngineToClientStringTable001 = 0x840D0;
public const nint Source2EngineToClient001 = 0x5A6B0; public const nint Source2EngineToClient001 = 0x5A730;
} }
public static class filesystem_stdio_dll { public static class filesystem_stdio_dll {
@ -100,7 +100,7 @@ public static class navsystem_dll {
} }
public static class networksystem_dll { public static class networksystem_dll {
public const nint SerializedEntitiesVersion001 = 0xD29C0; public const nint SerializedEntitiesVersion001 = 0xD2A60;
public const nint NetworkSystemVersion001 = 0xBCD00; public const nint NetworkSystemVersion001 = 0xBCD00;
public const nint NetworkMessagesVersion001 = 0x9CD30; public const nint NetworkMessagesVersion001 = 0x9CD30;
public const nint FlattenedSerializersVersion001 = 0x7C4E0; public const nint FlattenedSerializersVersion001 = 0x7C4E0;
@ -127,9 +127,9 @@ public static class pulse_system_dll {
} }
public static class rendersystemdx11_dll { public static class rendersystemdx11_dll {
public const nint RenderUtils_001 = 0x53440; public const nint RenderUtils_001 = 0x53470;
public const nint VRenderDeviceMgrBackdoor001 = 0x4AAA0; public const nint VRenderDeviceMgrBackdoor001 = 0x4AAD0;
public const nint RenderDeviceMgr001 = 0x4AA90; public const nint RenderDeviceMgr001 = 0x4AAC0;
} }
public static class resourcesystem_dll { public static class resourcesystem_dll {
@ -142,9 +142,9 @@ public static class scenefilecache_dll {
} }
public static class scenesystem_dll { public static class scenesystem_dll {
public const nint SceneUtils_001 = 0x13D610; public const nint SceneUtils_001 = 0x13D620;
public const nint SceneSystem_002 = 0xCAAB0; public const nint SceneSystem_002 = 0xCAAC0;
public const nint RenderingPipelines_001 = 0x8EA10; public const nint RenderingPipelines_001 = 0x8EA20;
} }
public static class schemasystem_dll { public static class schemasystem_dll {
@ -152,16 +152,16 @@ public static class schemasystem_dll {
} }
public static class server_dll { public static class server_dll {
public const nint NavGameTest001 = 0xA2B310; public const nint NavGameTest001 = 0xA2B2F0;
public const nint ServerToolsInfo_001 = 0x82F8C0; public const nint ServerToolsInfo_001 = 0x82F8A0;
public const nint Source2GameClients001 = 0x82F8D0; public const nint Source2GameClients001 = 0x82F8B0;
public const nint Source2GameEntities001 = 0x82F8E0; public const nint Source2GameEntities001 = 0x82F8C0;
public const nint Source2Server001 = 0x82F8F0; public const nint Source2Server001 = 0x82F8D0;
public const nint EmptyWorldService001_Server = 0x584640; public const nint EmptyWorldService001_Server = 0x584620;
public const nint Source2ServerConfig001 = 0x564650; public const nint Source2ServerConfig001 = 0x564630;
public const nint EntitySubclassUtilsV001 = 0x2C69A0; public const nint EntitySubclassUtilsV001 = 0x2C6980;
public const nint customnavsystem001 = 0x243420; public const nint customnavsystem001 = 0x243400;
public const nint Source2GameDirector001 = 0x13E9C0; public const nint Source2GameDirector001 = 0x13E9A0;
} }
public static class soundsystem_dll { public static class soundsystem_dll {

View File

@ -8,49 +8,49 @@ namespace animationsystem_dll {
} }
namespace client_dll { namespace client_dll {
constexpr std::ptrdiff_t LegacyGameUI001 = 0x88D1A0; constexpr std::ptrdiff_t LegacyGameUI001 = 0x88D0B0;
constexpr std::ptrdiff_t Source2ClientUI001 = 0x87BB90; constexpr std::ptrdiff_t Source2ClientUI001 = 0x87BAA0;
constexpr std::ptrdiff_t Source2ClientPrediction001 = 0x79B2D0; constexpr std::ptrdiff_t Source2ClientPrediction001 = 0x79B240;
constexpr std::ptrdiff_t ClientToolsInfo_001 = 0x7270E0; constexpr std::ptrdiff_t ClientToolsInfo_001 = 0x727050;
constexpr std::ptrdiff_t Source2Client002 = 0x727100; constexpr std::ptrdiff_t Source2Client002 = 0x727070;
constexpr std::ptrdiff_t GameClientExports001 = 0x7270F0; constexpr std::ptrdiff_t GameClientExports001 = 0x727060;
constexpr std::ptrdiff_t EmptyWorldService001_Client = 0x48A9C0; constexpr std::ptrdiff_t EmptyWorldService001_Client = 0x48A900;
constexpr std::ptrdiff_t Source2ClientConfig001 = 0x471D50; constexpr std::ptrdiff_t Source2ClientConfig001 = 0x471C90;
} }
namespace engine2_dll { namespace engine2_dll {
constexpr std::ptrdiff_t SimpleEngineLoopService_001 = 0x1E44F0; constexpr std::ptrdiff_t SimpleEngineLoopService_001 = 0x1E47A0;
constexpr std::ptrdiff_t ClientServerEngineLoopService_001 = 0x1DA1C0; constexpr std::ptrdiff_t ClientServerEngineLoopService_001 = 0x1DA470;
constexpr std::ptrdiff_t KeyValueCache001 = 0x1D6560; constexpr std::ptrdiff_t KeyValueCache001 = 0x1D6810;
constexpr std::ptrdiff_t HostStateMgr001 = 0x1D3FA0; constexpr std::ptrdiff_t HostStateMgr001 = 0x1D4220;
constexpr std::ptrdiff_t GameEventSystemServerV001 = 0x1CF3C0; constexpr std::ptrdiff_t GameEventSystemServerV001 = 0x1CF640;
constexpr std::ptrdiff_t GameEventSystemClientV001 = 0x1CF3B0; constexpr std::ptrdiff_t GameEventSystemClientV001 = 0x1CF630;
constexpr std::ptrdiff_t EngineServiceMgr001 = 0x1CACD0; constexpr std::ptrdiff_t EngineServiceMgr001 = 0x1CAF50;
constexpr std::ptrdiff_t VProfService_001 = 0x1B8C60; constexpr std::ptrdiff_t VProfService_001 = 0x1B8CE0;
constexpr std::ptrdiff_t ToolService_001 = 0x1B79C0; constexpr std::ptrdiff_t ToolService_001 = 0x1B7A40;
constexpr std::ptrdiff_t StatsService_001 = 0x1B2C40; constexpr std::ptrdiff_t StatsService_001 = 0x1B2CC0;
constexpr std::ptrdiff_t SplitScreenService_001 = 0x1AFEB0; constexpr std::ptrdiff_t SplitScreenService_001 = 0x1AFF30;
constexpr std::ptrdiff_t SoundService_001 = 0x1AAA00; constexpr std::ptrdiff_t SoundService_001 = 0x1AAA80;
constexpr std::ptrdiff_t ScreenshotService001 = 0x1A68D0; constexpr std::ptrdiff_t ScreenshotService001 = 0x1A6950;
constexpr std::ptrdiff_t RenderService_001 = 0x1A3C30; constexpr std::ptrdiff_t RenderService_001 = 0x1A3CB0;
constexpr std::ptrdiff_t NetworkService_001 = 0x1A3740; constexpr std::ptrdiff_t NetworkService_001 = 0x1A37C0;
constexpr std::ptrdiff_t NetworkServerService_001 = 0x19E7E0; constexpr std::ptrdiff_t NetworkServerService_001 = 0x19E860;
constexpr std::ptrdiff_t NetworkP2PService_001 = 0x19A1F0; constexpr std::ptrdiff_t NetworkP2PService_001 = 0x19A270;
constexpr std::ptrdiff_t NetworkClientService_001 = 0x193E20; constexpr std::ptrdiff_t NetworkClientService_001 = 0x193EA0;
constexpr std::ptrdiff_t MapListService_001 = 0x18CE60; constexpr std::ptrdiff_t MapListService_001 = 0x18CEE0;
constexpr std::ptrdiff_t InputService_001 = 0x17ABD0; constexpr std::ptrdiff_t InputService_001 = 0x17AC50;
constexpr std::ptrdiff_t GameUIService_001 = 0x175690; constexpr std::ptrdiff_t GameUIService_001 = 0x175710;
constexpr std::ptrdiff_t GameResourceServiceServerV001 = 0x1733F0; constexpr std::ptrdiff_t GameResourceServiceServerV001 = 0x173470;
constexpr std::ptrdiff_t GameResourceServiceClientV001 = 0x1733E0; constexpr std::ptrdiff_t GameResourceServiceClientV001 = 0x173460;
constexpr std::ptrdiff_t BugService001 = 0x16C410; constexpr std::ptrdiff_t BugService001 = 0x16C490;
constexpr std::ptrdiff_t BenchmarkService001 = 0x16ABE0; constexpr std::ptrdiff_t BenchmarkService001 = 0x16AC60;
constexpr std::ptrdiff_t VENGINE_GAMEUIFUNCS_VERSION005 = 0x118300; constexpr std::ptrdiff_t VENGINE_GAMEUIFUNCS_VERSION005 = 0x118380;
constexpr std::ptrdiff_t EngineGameUI001 = 0x1175C0; constexpr std::ptrdiff_t EngineGameUI001 = 0x117640;
constexpr std::ptrdiff_t INETSUPPORT_001 = 0xE6DA0; constexpr std::ptrdiff_t INETSUPPORT_001 = 0xE6E20;
constexpr std::ptrdiff_t Source2EngineToServerStringTable001 = 0xA1820; constexpr std::ptrdiff_t Source2EngineToServerStringTable001 = 0xA18A0;
constexpr std::ptrdiff_t Source2EngineToServer001 = 0x8B650; constexpr std::ptrdiff_t Source2EngineToServer001 = 0x8B6D0;
constexpr std::ptrdiff_t Source2EngineToClientStringTable001 = 0x84050; constexpr std::ptrdiff_t Source2EngineToClientStringTable001 = 0x840D0;
constexpr std::ptrdiff_t Source2EngineToClient001 = 0x5A6B0; constexpr std::ptrdiff_t Source2EngineToClient001 = 0x5A730;
} }
namespace filesystem_stdio_dll { namespace filesystem_stdio_dll {
@ -104,7 +104,7 @@ namespace navsystem_dll {
} }
namespace networksystem_dll { namespace networksystem_dll {
constexpr std::ptrdiff_t SerializedEntitiesVersion001 = 0xD29C0; constexpr std::ptrdiff_t SerializedEntitiesVersion001 = 0xD2A60;
constexpr std::ptrdiff_t NetworkSystemVersion001 = 0xBCD00; constexpr std::ptrdiff_t NetworkSystemVersion001 = 0xBCD00;
constexpr std::ptrdiff_t NetworkMessagesVersion001 = 0x9CD30; constexpr std::ptrdiff_t NetworkMessagesVersion001 = 0x9CD30;
constexpr std::ptrdiff_t FlattenedSerializersVersion001 = 0x7C4E0; constexpr std::ptrdiff_t FlattenedSerializersVersion001 = 0x7C4E0;
@ -131,9 +131,9 @@ namespace pulse_system_dll {
} }
namespace rendersystemdx11_dll { namespace rendersystemdx11_dll {
constexpr std::ptrdiff_t RenderUtils_001 = 0x53440; constexpr std::ptrdiff_t RenderUtils_001 = 0x53470;
constexpr std::ptrdiff_t VRenderDeviceMgrBackdoor001 = 0x4AAA0; constexpr std::ptrdiff_t VRenderDeviceMgrBackdoor001 = 0x4AAD0;
constexpr std::ptrdiff_t RenderDeviceMgr001 = 0x4AA90; constexpr std::ptrdiff_t RenderDeviceMgr001 = 0x4AAC0;
} }
namespace resourcesystem_dll { namespace resourcesystem_dll {
@ -146,9 +146,9 @@ namespace scenefilecache_dll {
} }
namespace scenesystem_dll { namespace scenesystem_dll {
constexpr std::ptrdiff_t SceneUtils_001 = 0x13D610; constexpr std::ptrdiff_t SceneUtils_001 = 0x13D620;
constexpr std::ptrdiff_t SceneSystem_002 = 0xCAAB0; constexpr std::ptrdiff_t SceneSystem_002 = 0xCAAC0;
constexpr std::ptrdiff_t RenderingPipelines_001 = 0x8EA10; constexpr std::ptrdiff_t RenderingPipelines_001 = 0x8EA20;
} }
namespace schemasystem_dll { namespace schemasystem_dll {
@ -156,16 +156,16 @@ namespace schemasystem_dll {
} }
namespace server_dll { namespace server_dll {
constexpr std::ptrdiff_t NavGameTest001 = 0xA2B310; constexpr std::ptrdiff_t NavGameTest001 = 0xA2B2F0;
constexpr std::ptrdiff_t ServerToolsInfo_001 = 0x82F8C0; constexpr std::ptrdiff_t ServerToolsInfo_001 = 0x82F8A0;
constexpr std::ptrdiff_t Source2GameClients001 = 0x82F8D0; constexpr std::ptrdiff_t Source2GameClients001 = 0x82F8B0;
constexpr std::ptrdiff_t Source2GameEntities001 = 0x82F8E0; constexpr std::ptrdiff_t Source2GameEntities001 = 0x82F8C0;
constexpr std::ptrdiff_t Source2Server001 = 0x82F8F0; constexpr std::ptrdiff_t Source2Server001 = 0x82F8D0;
constexpr std::ptrdiff_t EmptyWorldService001_Server = 0x584640; constexpr std::ptrdiff_t EmptyWorldService001_Server = 0x584620;
constexpr std::ptrdiff_t Source2ServerConfig001 = 0x564650; constexpr std::ptrdiff_t Source2ServerConfig001 = 0x564630;
constexpr std::ptrdiff_t EntitySubclassUtilsV001 = 0x2C69A0; constexpr std::ptrdiff_t EntitySubclassUtilsV001 = 0x2C6980;
constexpr std::ptrdiff_t customnavsystem001 = 0x243420; constexpr std::ptrdiff_t customnavsystem001 = 0x243400;
constexpr std::ptrdiff_t Source2GameDirector001 = 0x13E9C0; constexpr std::ptrdiff_t Source2GameDirector001 = 0x13E9A0;
} }
namespace soundsystem_dll { namespace soundsystem_dll {

View File

@ -4,48 +4,48 @@
"AnimationSystem_001": 389232 "AnimationSystem_001": 389232
}, },
"client_dll": { "client_dll": {
"ClientToolsInfo_001": 7500000, "ClientToolsInfo_001": 7499856,
"EmptyWorldService001_Client": 4762048, "EmptyWorldService001_Client": 4761856,
"GameClientExports001": 7500016, "GameClientExports001": 7499872,
"LegacyGameUI001": 8966560, "LegacyGameUI001": 8966320,
"Source2Client002": 7500032, "Source2Client002": 7499888,
"Source2ClientConfig001": 4660560, "Source2ClientConfig001": 4660368,
"Source2ClientPrediction001": 7975632, "Source2ClientPrediction001": 7975488,
"Source2ClientUI001": 8895376 "Source2ClientUI001": 8895136
}, },
"engine2_dll": { "engine2_dll": {
"BenchmarkService001": 1485792, "BenchmarkService001": 1485920,
"BugService001": 1491984, "BugService001": 1492112,
"ClientServerEngineLoopService_001": 1941952, "ClientServerEngineLoopService_001": 1942640,
"EngineGameUI001": 1144256, "EngineGameUI001": 1144384,
"EngineServiceMgr001": 1879248, "EngineServiceMgr001": 1879888,
"GameEventSystemClientV001": 1897392, "GameEventSystemClientV001": 1898032,
"GameEventSystemServerV001": 1897408, "GameEventSystemServerV001": 1898048,
"GameResourceServiceClientV001": 1520608, "GameResourceServiceClientV001": 1520736,
"GameResourceServiceServerV001": 1520624, "GameResourceServiceServerV001": 1520752,
"GameUIService_001": 1529488, "GameUIService_001": 1529616,
"HostStateMgr001": 1916832, "HostStateMgr001": 1917472,
"INETSUPPORT_001": 945568, "INETSUPPORT_001": 945696,
"InputService_001": 1551312, "InputService_001": 1551440,
"KeyValueCache001": 1926496, "KeyValueCache001": 1927184,
"MapListService_001": 1625696, "MapListService_001": 1625824,
"NetworkClientService_001": 1654304, "NetworkClientService_001": 1654432,
"NetworkP2PService_001": 1679856, "NetworkP2PService_001": 1679984,
"NetworkServerService_001": 1697760, "NetworkServerService_001": 1697888,
"NetworkService_001": 1718080, "NetworkService_001": 1718208,
"RenderService_001": 1719344, "RenderService_001": 1719472,
"ScreenshotService001": 1730768, "ScreenshotService001": 1730896,
"SimpleEngineLoopService_001": 1983728, "SimpleEngineLoopService_001": 1984416,
"SoundService_001": 1747456, "SoundService_001": 1747584,
"Source2EngineToClient001": 370352, "Source2EngineToClient001": 370480,
"Source2EngineToClientStringTable001": 540752, "Source2EngineToClientStringTable001": 540880,
"Source2EngineToServer001": 570960, "Source2EngineToServer001": 571088,
"Source2EngineToServerStringTable001": 661536, "Source2EngineToServerStringTable001": 661664,
"SplitScreenService_001": 1769136, "SplitScreenService_001": 1769264,
"StatsService_001": 1780800, "StatsService_001": 1780928,
"ToolService_001": 1800640, "ToolService_001": 1800768,
"VENGINE_GAMEUIFUNCS_VERSION005": 1147648, "VENGINE_GAMEUIFUNCS_VERSION005": 1147776,
"VProfService_001": 1805408 "VProfService_001": 1805536
}, },
"filesystem_stdio_dll": { "filesystem_stdio_dll": {
"VAsyncFileSystem2_001": 421184, "VAsyncFileSystem2_001": 421184,
@ -92,7 +92,7 @@
"FlattenedSerializersVersion001": 509152, "FlattenedSerializersVersion001": 509152,
"NetworkMessagesVersion001": 642352, "NetworkMessagesVersion001": 642352,
"NetworkSystemVersion001": 773376, "NetworkSystemVersion001": 773376,
"SerializedEntitiesVersion001": 862656 "SerializedEntitiesVersion001": 862816
}, },
"panorama_dll": { "panorama_dll": {
"PanoramaUIEngine001": 386640 "PanoramaUIEngine001": 386640
@ -110,9 +110,9 @@
"IPulseSystem_001": 23072 "IPulseSystem_001": 23072
}, },
"rendersystemdx11_dll": { "rendersystemdx11_dll": {
"RenderDeviceMgr001": 305808, "RenderDeviceMgr001": 305856,
"RenderUtils_001": 341056, "RenderUtils_001": 341104,
"VRenderDeviceMgrBackdoor001": 305824 "VRenderDeviceMgrBackdoor001": 305872
}, },
"resourcesystem_dll": { "resourcesystem_dll": {
"ResourceSystem013": 67248 "ResourceSystem013": 67248
@ -122,24 +122,24 @@
"SceneFileCache002": 26848 "SceneFileCache002": 26848
}, },
"scenesystem_dll": { "scenesystem_dll": {
"RenderingPipelines_001": 584208, "RenderingPipelines_001": 584224,
"SceneSystem_002": 830128, "SceneSystem_002": 830144,
"SceneUtils_001": 1299984 "SceneUtils_001": 1300000
}, },
"schemasystem_dll": { "schemasystem_dll": {
"SchemaSystem_001": 43072 "SchemaSystem_001": 43072
}, },
"server_dll": { "server_dll": {
"EmptyWorldService001_Server": 5785152, "EmptyWorldService001_Server": 5785120,
"EntitySubclassUtilsV001": 2910624, "EntitySubclassUtilsV001": 2910592,
"NavGameTest001": 10662672, "NavGameTest001": 10662640,
"ServerToolsInfo_001": 8583360, "ServerToolsInfo_001": 8583328,
"Source2GameClients001": 8583376, "Source2GameClients001": 8583344,
"Source2GameDirector001": 1305024, "Source2GameDirector001": 1304992,
"Source2GameEntities001": 8583392, "Source2GameEntities001": 8583360,
"Source2Server001": 8583408, "Source2Server001": 8583376,
"Source2ServerConfig001": 5654096, "Source2ServerConfig001": 5654064,
"customnavsystem001": 2372640 "customnavsystem001": 2372608
}, },
"soundsystem_dll": { "soundsystem_dll": {
"SoundOpSystem001": 1401040, "SoundOpSystem001": 1401040,

View File

@ -6,49 +6,49 @@ pub mod animationsystem_dll {
} }
pub mod client_dll { pub mod client_dll {
pub const LegacyGameUI001: usize = 0x88D1A0; pub const LegacyGameUI001: usize = 0x88D0B0;
pub const Source2ClientUI001: usize = 0x87BB90; pub const Source2ClientUI001: usize = 0x87BAA0;
pub const Source2ClientPrediction001: usize = 0x79B2D0; pub const Source2ClientPrediction001: usize = 0x79B240;
pub const ClientToolsInfo_001: usize = 0x7270E0; pub const ClientToolsInfo_001: usize = 0x727050;
pub const Source2Client002: usize = 0x727100; pub const Source2Client002: usize = 0x727070;
pub const GameClientExports001: usize = 0x7270F0; pub const GameClientExports001: usize = 0x727060;
pub const EmptyWorldService001_Client: usize = 0x48A9C0; pub const EmptyWorldService001_Client: usize = 0x48A900;
pub const Source2ClientConfig001: usize = 0x471D50; pub const Source2ClientConfig001: usize = 0x471C90;
} }
pub mod engine2_dll { pub mod engine2_dll {
pub const SimpleEngineLoopService_001: usize = 0x1E44F0; pub const SimpleEngineLoopService_001: usize = 0x1E47A0;
pub const ClientServerEngineLoopService_001: usize = 0x1DA1C0; pub const ClientServerEngineLoopService_001: usize = 0x1DA470;
pub const KeyValueCache001: usize = 0x1D6560; pub const KeyValueCache001: usize = 0x1D6810;
pub const HostStateMgr001: usize = 0x1D3FA0; pub const HostStateMgr001: usize = 0x1D4220;
pub const GameEventSystemServerV001: usize = 0x1CF3C0; pub const GameEventSystemServerV001: usize = 0x1CF640;
pub const GameEventSystemClientV001: usize = 0x1CF3B0; pub const GameEventSystemClientV001: usize = 0x1CF630;
pub const EngineServiceMgr001: usize = 0x1CACD0; pub const EngineServiceMgr001: usize = 0x1CAF50;
pub const VProfService_001: usize = 0x1B8C60; pub const VProfService_001: usize = 0x1B8CE0;
pub const ToolService_001: usize = 0x1B79C0; pub const ToolService_001: usize = 0x1B7A40;
pub const StatsService_001: usize = 0x1B2C40; pub const StatsService_001: usize = 0x1B2CC0;
pub const SplitScreenService_001: usize = 0x1AFEB0; pub const SplitScreenService_001: usize = 0x1AFF30;
pub const SoundService_001: usize = 0x1AAA00; pub const SoundService_001: usize = 0x1AAA80;
pub const ScreenshotService001: usize = 0x1A68D0; pub const ScreenshotService001: usize = 0x1A6950;
pub const RenderService_001: usize = 0x1A3C30; pub const RenderService_001: usize = 0x1A3CB0;
pub const NetworkService_001: usize = 0x1A3740; pub const NetworkService_001: usize = 0x1A37C0;
pub const NetworkServerService_001: usize = 0x19E7E0; pub const NetworkServerService_001: usize = 0x19E860;
pub const NetworkP2PService_001: usize = 0x19A1F0; pub const NetworkP2PService_001: usize = 0x19A270;
pub const NetworkClientService_001: usize = 0x193E20; pub const NetworkClientService_001: usize = 0x193EA0;
pub const MapListService_001: usize = 0x18CE60; pub const MapListService_001: usize = 0x18CEE0;
pub const InputService_001: usize = 0x17ABD0; pub const InputService_001: usize = 0x17AC50;
pub const GameUIService_001: usize = 0x175690; pub const GameUIService_001: usize = 0x175710;
pub const GameResourceServiceServerV001: usize = 0x1733F0; pub const GameResourceServiceServerV001: usize = 0x173470;
pub const GameResourceServiceClientV001: usize = 0x1733E0; pub const GameResourceServiceClientV001: usize = 0x173460;
pub const BugService001: usize = 0x16C410; pub const BugService001: usize = 0x16C490;
pub const BenchmarkService001: usize = 0x16ABE0; pub const BenchmarkService001: usize = 0x16AC60;
pub const VENGINE_GAMEUIFUNCS_VERSION005: usize = 0x118300; pub const VENGINE_GAMEUIFUNCS_VERSION005: usize = 0x118380;
pub const EngineGameUI001: usize = 0x1175C0; pub const EngineGameUI001: usize = 0x117640;
pub const INETSUPPORT_001: usize = 0xE6DA0; pub const INETSUPPORT_001: usize = 0xE6E20;
pub const Source2EngineToServerStringTable001: usize = 0xA1820; pub const Source2EngineToServerStringTable001: usize = 0xA18A0;
pub const Source2EngineToServer001: usize = 0x8B650; pub const Source2EngineToServer001: usize = 0x8B6D0;
pub const Source2EngineToClientStringTable001: usize = 0x84050; pub const Source2EngineToClientStringTable001: usize = 0x840D0;
pub const Source2EngineToClient001: usize = 0x5A6B0; pub const Source2EngineToClient001: usize = 0x5A730;
} }
pub mod filesystem_stdio_dll { pub mod filesystem_stdio_dll {
@ -102,7 +102,7 @@ pub mod navsystem_dll {
} }
pub mod networksystem_dll { pub mod networksystem_dll {
pub const SerializedEntitiesVersion001: usize = 0xD29C0; pub const SerializedEntitiesVersion001: usize = 0xD2A60;
pub const NetworkSystemVersion001: usize = 0xBCD00; pub const NetworkSystemVersion001: usize = 0xBCD00;
pub const NetworkMessagesVersion001: usize = 0x9CD30; pub const NetworkMessagesVersion001: usize = 0x9CD30;
pub const FlattenedSerializersVersion001: usize = 0x7C4E0; pub const FlattenedSerializersVersion001: usize = 0x7C4E0;
@ -129,9 +129,9 @@ pub mod pulse_system_dll {
} }
pub mod rendersystemdx11_dll { pub mod rendersystemdx11_dll {
pub const RenderUtils_001: usize = 0x53440; pub const RenderUtils_001: usize = 0x53470;
pub const VRenderDeviceMgrBackdoor001: usize = 0x4AAA0; pub const VRenderDeviceMgrBackdoor001: usize = 0x4AAD0;
pub const RenderDeviceMgr001: usize = 0x4AA90; pub const RenderDeviceMgr001: usize = 0x4AAC0;
} }
pub mod resourcesystem_dll { pub mod resourcesystem_dll {
@ -144,9 +144,9 @@ pub mod scenefilecache_dll {
} }
pub mod scenesystem_dll { pub mod scenesystem_dll {
pub const SceneUtils_001: usize = 0x13D610; pub const SceneUtils_001: usize = 0x13D620;
pub const SceneSystem_002: usize = 0xCAAB0; pub const SceneSystem_002: usize = 0xCAAC0;
pub const RenderingPipelines_001: usize = 0x8EA10; pub const RenderingPipelines_001: usize = 0x8EA20;
} }
pub mod schemasystem_dll { pub mod schemasystem_dll {
@ -154,16 +154,16 @@ pub mod schemasystem_dll {
} }
pub mod server_dll { pub mod server_dll {
pub const NavGameTest001: usize = 0xA2B310; pub const NavGameTest001: usize = 0xA2B2F0;
pub const ServerToolsInfo_001: usize = 0x82F8C0; pub const ServerToolsInfo_001: usize = 0x82F8A0;
pub const Source2GameClients001: usize = 0x82F8D0; pub const Source2GameClients001: usize = 0x82F8B0;
pub const Source2GameEntities001: usize = 0x82F8E0; pub const Source2GameEntities001: usize = 0x82F8C0;
pub const Source2Server001: usize = 0x82F8F0; pub const Source2Server001: usize = 0x82F8D0;
pub const EmptyWorldService001_Server: usize = 0x584640; pub const EmptyWorldService001_Server: usize = 0x584620;
pub const Source2ServerConfig001: usize = 0x564650; pub const Source2ServerConfig001: usize = 0x564630;
pub const EntitySubclassUtilsV001: usize = 0x2C69A0; pub const EntitySubclassUtilsV001: usize = 0x2C6980;
pub const customnavsystem001: usize = 0x243420; pub const customnavsystem001: usize = 0x243400;
pub const Source2GameDirector001: usize = 0x13E9C0; pub const Source2GameDirector001: usize = 0x13E9A0;
} }
pub mod soundsystem_dll { pub mod soundsystem_dll {

View File

@ -1,7 +1,8 @@
public static class client_dll { public static class client_dll {
public const nint entityList = 0x178C888; public const nint entityList = 0x178C878;
public const nint globalVars = 0x168FCD8; public const nint globalVars = 0x168FCC8;
public const nint localPlayerController = 0x17DB108; public const nint localPlayerController = 0x17DB0F8;
public const nint viewAngles = 0x18D95A0; public const nint localPlayerPawn = 0x1879BE8;
public const nint viewMatrix = 0x187A6E0; public const nint viewAngles = 0x18D9590;
public const nint viewMatrix = 0x187A6D0;
} }

View File

@ -3,9 +3,10 @@
#include <cstddef> #include <cstddef>
namespace client_dll { namespace client_dll {
constexpr std::ptrdiff_t entityList = 0x178C888; constexpr std::ptrdiff_t entityList = 0x178C878;
constexpr std::ptrdiff_t globalVars = 0x168FCD8; constexpr std::ptrdiff_t globalVars = 0x168FCC8;
constexpr std::ptrdiff_t localPlayerController = 0x17DB108; constexpr std::ptrdiff_t localPlayerController = 0x17DB0F8;
constexpr std::ptrdiff_t viewAngles = 0x18D95A0; constexpr std::ptrdiff_t localPlayerPawn = 0x1879BE8;
constexpr std::ptrdiff_t viewMatrix = 0x187A6E0; constexpr std::ptrdiff_t viewAngles = 0x18D9590;
constexpr std::ptrdiff_t viewMatrix = 0x187A6D0;
} }

View File

@ -1,9 +1,10 @@
{ {
"client_dll": { "client_dll": {
"entityList": 24692872, "entityList": 24692856,
"globalVars": 23657688, "globalVars": 23657672,
"localPlayerController": 25014536, "localPlayerController": 25014520,
"viewAngles": 26056096, "localPlayerPawn": 25664488,
"viewMatrix": 25667296 "viewAngles": 26056080,
"viewMatrix": 25667280
} }
} }

View File

@ -1,9 +1,10 @@
#![allow(non_snake_case, non_upper_case_globals)] #![allow(non_snake_case, non_upper_case_globals)]
pub mod client_dll { pub mod client_dll {
pub const entityList: usize = 0x178C888; pub const entityList: usize = 0x178C878;
pub const globalVars: usize = 0x168FCD8; pub const globalVars: usize = 0x168FCC8;
pub const localPlayerController: usize = 0x17DB108; pub const localPlayerController: usize = 0x17DB0F8;
pub const viewAngles: usize = 0x18D95A0; pub const localPlayerPawn: usize = 0x1879BE8;
pub const viewMatrix: usize = 0x187A6E0; pub const viewAngles: usize = 0x18D9590;
pub const viewMatrix: usize = 0x187A6D0;
} }

View File

@ -1,13 +1,21 @@
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
#[serde(tag = "type", rename_all = "camelCase")]
pub enum Operation {
Add { value: usize },
Dereference { times: Option<u16> },
Jmp,
RipRelative,
Subtract { value: usize },
}
#[derive(Debug, Deserialize, Serialize)] #[derive(Debug, Deserialize, Serialize)]
pub struct Signature { pub struct Signature {
pub name: String, pub name: String,
pub module: String, pub module: String,
pub pattern: String, pub pattern: String,
pub relative: bool, pub operations: Vec<Operation>,
pub levels: i32,
pub offset: i32,
} }
#[derive(Debug, Deserialize, Serialize)] #[derive(Debug, Deserialize, Serialize)]

View File

@ -15,7 +15,7 @@ pub fn dump_interfaces(builders: &mut Vec<FileBuilderEnum>, process: &Process) -
log::info!("Dumping interfaces in {}...", module_name); log::info!("Dumping interfaces in {}...", module_name);
if let Some(create_interface_export) = module.export("CreateInterface") { if let Some(create_interface_export) = module.export("CreateInterface") {
let create_interface_address = process.resolve_relative(create_interface_export.va)?; let create_interface_address = process.resolve_rip(create_interface_export.va)?;
let mut interface_registry = process let mut interface_registry = process
.read_memory::<usize>(create_interface_address) .read_memory::<usize>(create_interface_address)

View File

@ -1,7 +1,7 @@
use std::fs::File; use std::fs::File;
use crate::builder::FileBuilderEnum; use crate::builder::FileBuilderEnum;
use crate::config::Config; use crate::config::{Config, Operation};
use crate::error::{Error, Result}; use crate::error::{Error, Result};
use crate::remote::Process; use crate::remote::Process;
@ -21,17 +21,27 @@ pub fn dump_offsets(builders: &mut Vec<FileBuilderEnum>, process: &Process) -> R
let mut address = process.find_pattern(&signature.module, &signature.pattern)?; let mut address = process.find_pattern(&signature.module, &signature.pattern)?;
if signature.relative { for operation in signature.operations {
address = process.resolve_relative(address)?; match operation {
Operation::Add { value } => {
address += value;
} }
Operation::Dereference { times } => {
if signature.levels > 0 { for _ in 0..times.unwrap_or(1) {
for _ in 0..signature.levels {
address = process.read_memory::<usize>(address)?; address = process.read_memory::<usize>(address)?;
} }
} }
Operation::Jmp => {
address += signature.offset as usize; address = process.resolve_jmp(address)?;
}
Operation::RipRelative => {
address = process.resolve_rip(address)?;
}
Operation::Subtract { value } => {
address -= value;
}
}
}
log::info!( log::info!(
" -> Found '{}' @ {:#X} (RVA: {:#X})", " -> Found '{}' @ {:#X} (RVA: {:#X})",

View File

@ -175,7 +175,7 @@ impl Process {
Ok((address + 0x5) + displacement as usize) Ok((address + 0x5) + displacement as usize)
} }
pub fn resolve_relative(&self, address: usize) -> Result<usize> { pub fn resolve_rip(&self, address: usize) -> Result<usize> {
let displacement = self.read_memory::<i32>(address + 0x3)?; let displacement = self.read_memory::<i32>(address + 0x3)?;
Ok((address + 0x7) + displacement as usize) Ok((address + 0x7) + displacement as usize)

View File

@ -15,7 +15,7 @@ impl<'a> SchemaSystem<'a> {
"48 8D 0D ? ? ? ? E9 ? ? ? ? CC CC CC CC 48 8D 0D ? ? ? ? E9 ? ? ? ? CC CC CC CC 48 83 EC 28" "48 8D 0D ? ? ? ? E9 ? ? ? ? CC CC CC CC 48 8D 0D ? ? ? ? E9 ? ? ? ? CC CC CC CC 48 83 EC 28"
)?; )?;
address = process.resolve_relative(address)?; address = process.resolve_rip(address)?;
Ok(Self { process, address }) Ok(Self { process, address })
} }