diff --git a/config.json b/config.json index 8f732f1..b19c239 100644 --- a/config.json +++ b/config.json @@ -1,44 +1,75 @@ { - "signatures": [ - { - "name": "entityList", - "module": "client.dll", - "pattern": "48 8B 0D ? ? ? ? 48 89 7C 24 ? 8B FA C1 EB", - "relative": true, - "levels": 0, - "offset": 0 - }, - { - "name": "globalVars", - "module": "client.dll", - "pattern": "48 89 0D ? ? ? ? 48 89 41", - "relative": true, - "levels": 0, - "offset": 0 - }, - { - "name": "localPlayerController", - "module": "client.dll", - "pattern": "48 8B 05 ? ? ? ? 48 85 C0 74 4F", - "relative": true, - "levels": 0, - "offset": 0 - }, - { - "name": "viewAngles", - "module": "client.dll", - "pattern": "48 8B 0D ? ? ? ? 48 8B 01 48 FF 60 30", - "relative": true, - "levels": 1, - "offset": 17680 - }, - { - "name": "viewMatrix", - "module": "client.dll", - "pattern": "48 8D 0D ? ? ? ? 48 C1 E0 06", - "relative": true, - "levels": 0, - "offset": 0 - } - ] + "signatures": [ + { + "name": "entityList", + "module": "client.dll", + "pattern": "48 8B 0D ? ? ? ? 48 89 7C 24 ? 8B FA C1 EB", + "operations": [ + { + "type": "ripRelative" + } + ] + }, + { + "name": "globalVars", + "module": "client.dll", + "pattern": "48 89 0D ? ? ? ? 48 89 41", + "operations": [ + { + "type": "ripRelative" + } + ] + }, + { + "name": "localPlayerController", + "module": "client.dll", + "pattern": "48 8B 05 ? ? ? ? 48 85 C0 74 4F", + "operations": [ + { + "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", + "module": "client.dll", + "pattern": "48 8B 0D ? ? ? ? 48 8B 01 48 FF 60 30", + "operations": [ + { + "type": "ripRelative" + }, + { + "type": "dereference" + }, + { + "type": "add", + "value": 17680 + } + ] + }, + { + "name": "viewMatrix", + "module": "client.dll", + "pattern": "48 8D 0D ? ? ? ? 48 C1 E0 06", + "operations": [ + { + "type": "ripRelative" + } + ] + } + ] } \ No newline at end of file diff --git a/generated/interfaces.cs b/generated/interfaces.cs index e911900..3f0d65b 100644 --- a/generated/interfaces.cs +++ b/generated/interfaces.cs @@ -4,49 +4,49 @@ public static class animationsystem_dll { } public static class client_dll { - public const nint LegacyGameUI001 = 0x88D1A0; - public const nint Source2ClientUI001 = 0x87BB90; - public const nint Source2ClientPrediction001 = 0x79B2D0; - public const nint ClientToolsInfo_001 = 0x7270E0; - public const nint Source2Client002 = 0x727100; - public const nint GameClientExports001 = 0x7270F0; - public const nint EmptyWorldService001_Client = 0x48A9C0; - public const nint Source2ClientConfig001 = 0x471D50; + public const nint LegacyGameUI001 = 0x88D0B0; + public const nint Source2ClientUI001 = 0x87BAA0; + public const nint Source2ClientPrediction001 = 0x79B240; + public const nint ClientToolsInfo_001 = 0x727050; + public const nint Source2Client002 = 0x727070; + public const nint GameClientExports001 = 0x727060; + public const nint EmptyWorldService001_Client = 0x48A900; + public const nint Source2ClientConfig001 = 0x471C90; } public static class engine2_dll { - public const nint SimpleEngineLoopService_001 = 0x1E44F0; - public const nint ClientServerEngineLoopService_001 = 0x1DA1C0; - public const nint KeyValueCache001 = 0x1D6560; - public const nint HostStateMgr001 = 0x1D3FA0; - public const nint GameEventSystemServerV001 = 0x1CF3C0; - public const nint GameEventSystemClientV001 = 0x1CF3B0; - public const nint EngineServiceMgr001 = 0x1CACD0; - public const nint VProfService_001 = 0x1B8C60; - public const nint ToolService_001 = 0x1B79C0; - public const nint StatsService_001 = 0x1B2C40; - public const nint SplitScreenService_001 = 0x1AFEB0; - public const nint SoundService_001 = 0x1AAA00; - public const nint ScreenshotService001 = 0x1A68D0; - public const nint RenderService_001 = 0x1A3C30; - public const nint NetworkService_001 = 0x1A3740; - public const nint NetworkServerService_001 = 0x19E7E0; - public const nint NetworkP2PService_001 = 0x19A1F0; - public const nint NetworkClientService_001 = 0x193E20; - public const nint MapListService_001 = 0x18CE60; - public const nint InputService_001 = 0x17ABD0; - public const nint GameUIService_001 = 0x175690; - public const nint GameResourceServiceServerV001 = 0x1733F0; - public const nint GameResourceServiceClientV001 = 0x1733E0; - public const nint BugService001 = 0x16C410; - public const nint BenchmarkService001 = 0x16ABE0; - public const nint VENGINE_GAMEUIFUNCS_VERSION005 = 0x118300; - public const nint EngineGameUI001 = 0x1175C0; - public const nint INETSUPPORT_001 = 0xE6DA0; - public const nint Source2EngineToServerStringTable001 = 0xA1820; - public const nint Source2EngineToServer001 = 0x8B650; - public const nint Source2EngineToClientStringTable001 = 0x84050; - public const nint Source2EngineToClient001 = 0x5A6B0; + public const nint SimpleEngineLoopService_001 = 0x1E47A0; + public const nint ClientServerEngineLoopService_001 = 0x1DA470; + public const nint KeyValueCache001 = 0x1D6810; + public const nint HostStateMgr001 = 0x1D4220; + public const nint GameEventSystemServerV001 = 0x1CF640; + public const nint GameEventSystemClientV001 = 0x1CF630; + public const nint EngineServiceMgr001 = 0x1CAF50; + public const nint VProfService_001 = 0x1B8CE0; + public const nint ToolService_001 = 0x1B7A40; + public const nint StatsService_001 = 0x1B2CC0; + public const nint SplitScreenService_001 = 0x1AFF30; + public const nint SoundService_001 = 0x1AAA80; + public const nint ScreenshotService001 = 0x1A6950; + public const nint RenderService_001 = 0x1A3CB0; + public const nint NetworkService_001 = 0x1A37C0; + public const nint NetworkServerService_001 = 0x19E860; + public const nint NetworkP2PService_001 = 0x19A270; + public const nint NetworkClientService_001 = 0x193EA0; + public const nint MapListService_001 = 0x18CEE0; + public const nint InputService_001 = 0x17AC50; + public const nint GameUIService_001 = 0x175710; + public const nint GameResourceServiceServerV001 = 0x173470; + public const nint GameResourceServiceClientV001 = 0x173460; + public const nint BugService001 = 0x16C490; + public const nint BenchmarkService001 = 0x16AC60; + public const nint VENGINE_GAMEUIFUNCS_VERSION005 = 0x118380; + public const nint EngineGameUI001 = 0x117640; + public const nint INETSUPPORT_001 = 0xE6E20; + public const nint Source2EngineToServerStringTable001 = 0xA18A0; + public const nint Source2EngineToServer001 = 0x8B6D0; + public const nint Source2EngineToClientStringTable001 = 0x840D0; + public const nint Source2EngineToClient001 = 0x5A730; } public static class filesystem_stdio_dll { @@ -100,7 +100,7 @@ public static class navsystem_dll { } public static class networksystem_dll { - public const nint SerializedEntitiesVersion001 = 0xD29C0; + public const nint SerializedEntitiesVersion001 = 0xD2A60; public const nint NetworkSystemVersion001 = 0xBCD00; public const nint NetworkMessagesVersion001 = 0x9CD30; public const nint FlattenedSerializersVersion001 = 0x7C4E0; @@ -127,9 +127,9 @@ public static class pulse_system_dll { } public static class rendersystemdx11_dll { - public const nint RenderUtils_001 = 0x53440; - public const nint VRenderDeviceMgrBackdoor001 = 0x4AAA0; - public const nint RenderDeviceMgr001 = 0x4AA90; + public const nint RenderUtils_001 = 0x53470; + public const nint VRenderDeviceMgrBackdoor001 = 0x4AAD0; + public const nint RenderDeviceMgr001 = 0x4AAC0; } public static class resourcesystem_dll { @@ -142,9 +142,9 @@ public static class scenefilecache_dll { } public static class scenesystem_dll { - public const nint SceneUtils_001 = 0x13D610; - public const nint SceneSystem_002 = 0xCAAB0; - public const nint RenderingPipelines_001 = 0x8EA10; + public const nint SceneUtils_001 = 0x13D620; + public const nint SceneSystem_002 = 0xCAAC0; + public const nint RenderingPipelines_001 = 0x8EA20; } public static class schemasystem_dll { @@ -152,16 +152,16 @@ public static class schemasystem_dll { } public static class server_dll { - public const nint NavGameTest001 = 0xA2B310; - public const nint ServerToolsInfo_001 = 0x82F8C0; - public const nint Source2GameClients001 = 0x82F8D0; - public const nint Source2GameEntities001 = 0x82F8E0; - public const nint Source2Server001 = 0x82F8F0; - public const nint EmptyWorldService001_Server = 0x584640; - public const nint Source2ServerConfig001 = 0x564650; - public const nint EntitySubclassUtilsV001 = 0x2C69A0; - public const nint customnavsystem001 = 0x243420; - public const nint Source2GameDirector001 = 0x13E9C0; + public const nint NavGameTest001 = 0xA2B2F0; + public const nint ServerToolsInfo_001 = 0x82F8A0; + public const nint Source2GameClients001 = 0x82F8B0; + public const nint Source2GameEntities001 = 0x82F8C0; + public const nint Source2Server001 = 0x82F8D0; + public const nint EmptyWorldService001_Server = 0x584620; + public const nint Source2ServerConfig001 = 0x564630; + public const nint EntitySubclassUtilsV001 = 0x2C6980; + public const nint customnavsystem001 = 0x243400; + public const nint Source2GameDirector001 = 0x13E9A0; } public static class soundsystem_dll { diff --git a/generated/interfaces.hpp b/generated/interfaces.hpp index 2adee38..06c49ba 100644 --- a/generated/interfaces.hpp +++ b/generated/interfaces.hpp @@ -8,49 +8,49 @@ namespace animationsystem_dll { } namespace client_dll { - constexpr std::ptrdiff_t LegacyGameUI001 = 0x88D1A0; - constexpr std::ptrdiff_t Source2ClientUI001 = 0x87BB90; - constexpr std::ptrdiff_t Source2ClientPrediction001 = 0x79B2D0; - constexpr std::ptrdiff_t ClientToolsInfo_001 = 0x7270E0; - constexpr std::ptrdiff_t Source2Client002 = 0x727100; - constexpr std::ptrdiff_t GameClientExports001 = 0x7270F0; - constexpr std::ptrdiff_t EmptyWorldService001_Client = 0x48A9C0; - constexpr std::ptrdiff_t Source2ClientConfig001 = 0x471D50; + constexpr std::ptrdiff_t LegacyGameUI001 = 0x88D0B0; + constexpr std::ptrdiff_t Source2ClientUI001 = 0x87BAA0; + constexpr std::ptrdiff_t Source2ClientPrediction001 = 0x79B240; + constexpr std::ptrdiff_t ClientToolsInfo_001 = 0x727050; + constexpr std::ptrdiff_t Source2Client002 = 0x727070; + constexpr std::ptrdiff_t GameClientExports001 = 0x727060; + constexpr std::ptrdiff_t EmptyWorldService001_Client = 0x48A900; + constexpr std::ptrdiff_t Source2ClientConfig001 = 0x471C90; } namespace engine2_dll { - constexpr std::ptrdiff_t SimpleEngineLoopService_001 = 0x1E44F0; - constexpr std::ptrdiff_t ClientServerEngineLoopService_001 = 0x1DA1C0; - constexpr std::ptrdiff_t KeyValueCache001 = 0x1D6560; - constexpr std::ptrdiff_t HostStateMgr001 = 0x1D3FA0; - constexpr std::ptrdiff_t GameEventSystemServerV001 = 0x1CF3C0; - constexpr std::ptrdiff_t GameEventSystemClientV001 = 0x1CF3B0; - constexpr std::ptrdiff_t EngineServiceMgr001 = 0x1CACD0; - constexpr std::ptrdiff_t VProfService_001 = 0x1B8C60; - constexpr std::ptrdiff_t ToolService_001 = 0x1B79C0; - constexpr std::ptrdiff_t StatsService_001 = 0x1B2C40; - constexpr std::ptrdiff_t SplitScreenService_001 = 0x1AFEB0; - constexpr std::ptrdiff_t SoundService_001 = 0x1AAA00; - constexpr std::ptrdiff_t ScreenshotService001 = 0x1A68D0; - constexpr std::ptrdiff_t RenderService_001 = 0x1A3C30; - constexpr std::ptrdiff_t NetworkService_001 = 0x1A3740; - constexpr std::ptrdiff_t NetworkServerService_001 = 0x19E7E0; - constexpr std::ptrdiff_t NetworkP2PService_001 = 0x19A1F0; - constexpr std::ptrdiff_t NetworkClientService_001 = 0x193E20; - constexpr std::ptrdiff_t MapListService_001 = 0x18CE60; - constexpr std::ptrdiff_t InputService_001 = 0x17ABD0; - constexpr std::ptrdiff_t GameUIService_001 = 0x175690; - constexpr std::ptrdiff_t GameResourceServiceServerV001 = 0x1733F0; - constexpr std::ptrdiff_t GameResourceServiceClientV001 = 0x1733E0; - constexpr std::ptrdiff_t BugService001 = 0x16C410; - constexpr std::ptrdiff_t BenchmarkService001 = 0x16ABE0; - constexpr std::ptrdiff_t VENGINE_GAMEUIFUNCS_VERSION005 = 0x118300; - constexpr std::ptrdiff_t EngineGameUI001 = 0x1175C0; - constexpr std::ptrdiff_t INETSUPPORT_001 = 0xE6DA0; - constexpr std::ptrdiff_t Source2EngineToServerStringTable001 = 0xA1820; - constexpr std::ptrdiff_t Source2EngineToServer001 = 0x8B650; - constexpr std::ptrdiff_t Source2EngineToClientStringTable001 = 0x84050; - constexpr std::ptrdiff_t Source2EngineToClient001 = 0x5A6B0; + constexpr std::ptrdiff_t SimpleEngineLoopService_001 = 0x1E47A0; + constexpr std::ptrdiff_t ClientServerEngineLoopService_001 = 0x1DA470; + constexpr std::ptrdiff_t KeyValueCache001 = 0x1D6810; + constexpr std::ptrdiff_t HostStateMgr001 = 0x1D4220; + constexpr std::ptrdiff_t GameEventSystemServerV001 = 0x1CF640; + constexpr std::ptrdiff_t GameEventSystemClientV001 = 0x1CF630; + constexpr std::ptrdiff_t EngineServiceMgr001 = 0x1CAF50; + constexpr std::ptrdiff_t VProfService_001 = 0x1B8CE0; + constexpr std::ptrdiff_t ToolService_001 = 0x1B7A40; + constexpr std::ptrdiff_t StatsService_001 = 0x1B2CC0; + constexpr std::ptrdiff_t SplitScreenService_001 = 0x1AFF30; + constexpr std::ptrdiff_t SoundService_001 = 0x1AAA80; + constexpr std::ptrdiff_t ScreenshotService001 = 0x1A6950; + constexpr std::ptrdiff_t RenderService_001 = 0x1A3CB0; + constexpr std::ptrdiff_t NetworkService_001 = 0x1A37C0; + constexpr std::ptrdiff_t NetworkServerService_001 = 0x19E860; + constexpr std::ptrdiff_t NetworkP2PService_001 = 0x19A270; + constexpr std::ptrdiff_t NetworkClientService_001 = 0x193EA0; + constexpr std::ptrdiff_t MapListService_001 = 0x18CEE0; + constexpr std::ptrdiff_t InputService_001 = 0x17AC50; + constexpr std::ptrdiff_t GameUIService_001 = 0x175710; + constexpr std::ptrdiff_t GameResourceServiceServerV001 = 0x173470; + constexpr std::ptrdiff_t GameResourceServiceClientV001 = 0x173460; + constexpr std::ptrdiff_t BugService001 = 0x16C490; + constexpr std::ptrdiff_t BenchmarkService001 = 0x16AC60; + constexpr std::ptrdiff_t VENGINE_GAMEUIFUNCS_VERSION005 = 0x118380; + constexpr std::ptrdiff_t EngineGameUI001 = 0x117640; + constexpr std::ptrdiff_t INETSUPPORT_001 = 0xE6E20; + constexpr std::ptrdiff_t Source2EngineToServerStringTable001 = 0xA18A0; + constexpr std::ptrdiff_t Source2EngineToServer001 = 0x8B6D0; + constexpr std::ptrdiff_t Source2EngineToClientStringTable001 = 0x840D0; + constexpr std::ptrdiff_t Source2EngineToClient001 = 0x5A730; } namespace filesystem_stdio_dll { @@ -104,7 +104,7 @@ namespace navsystem_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 NetworkMessagesVersion001 = 0x9CD30; constexpr std::ptrdiff_t FlattenedSerializersVersion001 = 0x7C4E0; @@ -131,9 +131,9 @@ namespace pulse_system_dll { } namespace rendersystemdx11_dll { - constexpr std::ptrdiff_t RenderUtils_001 = 0x53440; - constexpr std::ptrdiff_t VRenderDeviceMgrBackdoor001 = 0x4AAA0; - constexpr std::ptrdiff_t RenderDeviceMgr001 = 0x4AA90; + constexpr std::ptrdiff_t RenderUtils_001 = 0x53470; + constexpr std::ptrdiff_t VRenderDeviceMgrBackdoor001 = 0x4AAD0; + constexpr std::ptrdiff_t RenderDeviceMgr001 = 0x4AAC0; } namespace resourcesystem_dll { @@ -146,9 +146,9 @@ namespace scenefilecache_dll { } namespace scenesystem_dll { - constexpr std::ptrdiff_t SceneUtils_001 = 0x13D610; - constexpr std::ptrdiff_t SceneSystem_002 = 0xCAAB0; - constexpr std::ptrdiff_t RenderingPipelines_001 = 0x8EA10; + constexpr std::ptrdiff_t SceneUtils_001 = 0x13D620; + constexpr std::ptrdiff_t SceneSystem_002 = 0xCAAC0; + constexpr std::ptrdiff_t RenderingPipelines_001 = 0x8EA20; } namespace schemasystem_dll { @@ -156,16 +156,16 @@ namespace schemasystem_dll { } namespace server_dll { - constexpr std::ptrdiff_t NavGameTest001 = 0xA2B310; - constexpr std::ptrdiff_t ServerToolsInfo_001 = 0x82F8C0; - constexpr std::ptrdiff_t Source2GameClients001 = 0x82F8D0; - constexpr std::ptrdiff_t Source2GameEntities001 = 0x82F8E0; - constexpr std::ptrdiff_t Source2Server001 = 0x82F8F0; - constexpr std::ptrdiff_t EmptyWorldService001_Server = 0x584640; - constexpr std::ptrdiff_t Source2ServerConfig001 = 0x564650; - constexpr std::ptrdiff_t EntitySubclassUtilsV001 = 0x2C69A0; - constexpr std::ptrdiff_t customnavsystem001 = 0x243420; - constexpr std::ptrdiff_t Source2GameDirector001 = 0x13E9C0; + constexpr std::ptrdiff_t NavGameTest001 = 0xA2B2F0; + constexpr std::ptrdiff_t ServerToolsInfo_001 = 0x82F8A0; + constexpr std::ptrdiff_t Source2GameClients001 = 0x82F8B0; + constexpr std::ptrdiff_t Source2GameEntities001 = 0x82F8C0; + constexpr std::ptrdiff_t Source2Server001 = 0x82F8D0; + constexpr std::ptrdiff_t EmptyWorldService001_Server = 0x584620; + constexpr std::ptrdiff_t Source2ServerConfig001 = 0x564630; + constexpr std::ptrdiff_t EntitySubclassUtilsV001 = 0x2C6980; + constexpr std::ptrdiff_t customnavsystem001 = 0x243400; + constexpr std::ptrdiff_t Source2GameDirector001 = 0x13E9A0; } namespace soundsystem_dll { diff --git a/generated/interfaces.json b/generated/interfaces.json index 41e9576..fb3bdd7 100644 --- a/generated/interfaces.json +++ b/generated/interfaces.json @@ -4,48 +4,48 @@ "AnimationSystem_001": 389232 }, "client_dll": { - "ClientToolsInfo_001": 7500000, - "EmptyWorldService001_Client": 4762048, - "GameClientExports001": 7500016, - "LegacyGameUI001": 8966560, - "Source2Client002": 7500032, - "Source2ClientConfig001": 4660560, - "Source2ClientPrediction001": 7975632, - "Source2ClientUI001": 8895376 + "ClientToolsInfo_001": 7499856, + "EmptyWorldService001_Client": 4761856, + "GameClientExports001": 7499872, + "LegacyGameUI001": 8966320, + "Source2Client002": 7499888, + "Source2ClientConfig001": 4660368, + "Source2ClientPrediction001": 7975488, + "Source2ClientUI001": 8895136 }, "engine2_dll": { - "BenchmarkService001": 1485792, - "BugService001": 1491984, - "ClientServerEngineLoopService_001": 1941952, - "EngineGameUI001": 1144256, - "EngineServiceMgr001": 1879248, - "GameEventSystemClientV001": 1897392, - "GameEventSystemServerV001": 1897408, - "GameResourceServiceClientV001": 1520608, - "GameResourceServiceServerV001": 1520624, - "GameUIService_001": 1529488, - "HostStateMgr001": 1916832, - "INETSUPPORT_001": 945568, - "InputService_001": 1551312, - "KeyValueCache001": 1926496, - "MapListService_001": 1625696, - "NetworkClientService_001": 1654304, - "NetworkP2PService_001": 1679856, - "NetworkServerService_001": 1697760, - "NetworkService_001": 1718080, - "RenderService_001": 1719344, - "ScreenshotService001": 1730768, - "SimpleEngineLoopService_001": 1983728, - "SoundService_001": 1747456, - "Source2EngineToClient001": 370352, - "Source2EngineToClientStringTable001": 540752, - "Source2EngineToServer001": 570960, - "Source2EngineToServerStringTable001": 661536, - "SplitScreenService_001": 1769136, - "StatsService_001": 1780800, - "ToolService_001": 1800640, - "VENGINE_GAMEUIFUNCS_VERSION005": 1147648, - "VProfService_001": 1805408 + "BenchmarkService001": 1485920, + "BugService001": 1492112, + "ClientServerEngineLoopService_001": 1942640, + "EngineGameUI001": 1144384, + "EngineServiceMgr001": 1879888, + "GameEventSystemClientV001": 1898032, + "GameEventSystemServerV001": 1898048, + "GameResourceServiceClientV001": 1520736, + "GameResourceServiceServerV001": 1520752, + "GameUIService_001": 1529616, + "HostStateMgr001": 1917472, + "INETSUPPORT_001": 945696, + "InputService_001": 1551440, + "KeyValueCache001": 1927184, + "MapListService_001": 1625824, + "NetworkClientService_001": 1654432, + "NetworkP2PService_001": 1679984, + "NetworkServerService_001": 1697888, + "NetworkService_001": 1718208, + "RenderService_001": 1719472, + "ScreenshotService001": 1730896, + "SimpleEngineLoopService_001": 1984416, + "SoundService_001": 1747584, + "Source2EngineToClient001": 370480, + "Source2EngineToClientStringTable001": 540880, + "Source2EngineToServer001": 571088, + "Source2EngineToServerStringTable001": 661664, + "SplitScreenService_001": 1769264, + "StatsService_001": 1780928, + "ToolService_001": 1800768, + "VENGINE_GAMEUIFUNCS_VERSION005": 1147776, + "VProfService_001": 1805536 }, "filesystem_stdio_dll": { "VAsyncFileSystem2_001": 421184, @@ -92,7 +92,7 @@ "FlattenedSerializersVersion001": 509152, "NetworkMessagesVersion001": 642352, "NetworkSystemVersion001": 773376, - "SerializedEntitiesVersion001": 862656 + "SerializedEntitiesVersion001": 862816 }, "panorama_dll": { "PanoramaUIEngine001": 386640 @@ -110,9 +110,9 @@ "IPulseSystem_001": 23072 }, "rendersystemdx11_dll": { - "RenderDeviceMgr001": 305808, - "RenderUtils_001": 341056, - "VRenderDeviceMgrBackdoor001": 305824 + "RenderDeviceMgr001": 305856, + "RenderUtils_001": 341104, + "VRenderDeviceMgrBackdoor001": 305872 }, "resourcesystem_dll": { "ResourceSystem013": 67248 @@ -122,24 +122,24 @@ "SceneFileCache002": 26848 }, "scenesystem_dll": { - "RenderingPipelines_001": 584208, - "SceneSystem_002": 830128, - "SceneUtils_001": 1299984 + "RenderingPipelines_001": 584224, + "SceneSystem_002": 830144, + "SceneUtils_001": 1300000 }, "schemasystem_dll": { "SchemaSystem_001": 43072 }, "server_dll": { - "EmptyWorldService001_Server": 5785152, - "EntitySubclassUtilsV001": 2910624, - "NavGameTest001": 10662672, - "ServerToolsInfo_001": 8583360, - "Source2GameClients001": 8583376, - "Source2GameDirector001": 1305024, - "Source2GameEntities001": 8583392, - "Source2Server001": 8583408, - "Source2ServerConfig001": 5654096, - "customnavsystem001": 2372640 + "EmptyWorldService001_Server": 5785120, + "EntitySubclassUtilsV001": 2910592, + "NavGameTest001": 10662640, + "ServerToolsInfo_001": 8583328, + "Source2GameClients001": 8583344, + "Source2GameDirector001": 1304992, + "Source2GameEntities001": 8583360, + "Source2Server001": 8583376, + "Source2ServerConfig001": 5654064, + "customnavsystem001": 2372608 }, "soundsystem_dll": { "SoundOpSystem001": 1401040, diff --git a/generated/interfaces.rs b/generated/interfaces.rs index 1cf1f14..1c043e2 100644 --- a/generated/interfaces.rs +++ b/generated/interfaces.rs @@ -6,49 +6,49 @@ pub mod animationsystem_dll { } pub mod client_dll { - pub const LegacyGameUI001: usize = 0x88D1A0; - pub const Source2ClientUI001: usize = 0x87BB90; - pub const Source2ClientPrediction001: usize = 0x79B2D0; - pub const ClientToolsInfo_001: usize = 0x7270E0; - pub const Source2Client002: usize = 0x727100; - pub const GameClientExports001: usize = 0x7270F0; - pub const EmptyWorldService001_Client: usize = 0x48A9C0; - pub const Source2ClientConfig001: usize = 0x471D50; + pub const LegacyGameUI001: usize = 0x88D0B0; + pub const Source2ClientUI001: usize = 0x87BAA0; + pub const Source2ClientPrediction001: usize = 0x79B240; + pub const ClientToolsInfo_001: usize = 0x727050; + pub const Source2Client002: usize = 0x727070; + pub const GameClientExports001: usize = 0x727060; + pub const EmptyWorldService001_Client: usize = 0x48A900; + pub const Source2ClientConfig001: usize = 0x471C90; } pub mod engine2_dll { - pub const SimpleEngineLoopService_001: usize = 0x1E44F0; - pub const ClientServerEngineLoopService_001: usize = 0x1DA1C0; - pub const KeyValueCache001: usize = 0x1D6560; - pub const HostStateMgr001: usize = 0x1D3FA0; - pub const GameEventSystemServerV001: usize = 0x1CF3C0; - pub const GameEventSystemClientV001: usize = 0x1CF3B0; - pub const EngineServiceMgr001: usize = 0x1CACD0; - pub const VProfService_001: usize = 0x1B8C60; - pub const ToolService_001: usize = 0x1B79C0; - pub const StatsService_001: usize = 0x1B2C40; - pub const SplitScreenService_001: usize = 0x1AFEB0; - pub const SoundService_001: usize = 0x1AAA00; - pub const ScreenshotService001: usize = 0x1A68D0; - pub const RenderService_001: usize = 0x1A3C30; - pub const NetworkService_001: usize = 0x1A3740; - pub const NetworkServerService_001: usize = 0x19E7E0; - pub const NetworkP2PService_001: usize = 0x19A1F0; - pub const NetworkClientService_001: usize = 0x193E20; - pub const MapListService_001: usize = 0x18CE60; - pub const InputService_001: usize = 0x17ABD0; - pub const GameUIService_001: usize = 0x175690; - pub const GameResourceServiceServerV001: usize = 0x1733F0; - pub const GameResourceServiceClientV001: usize = 0x1733E0; - pub const BugService001: usize = 0x16C410; - pub const BenchmarkService001: usize = 0x16ABE0; - pub const VENGINE_GAMEUIFUNCS_VERSION005: usize = 0x118300; - pub const EngineGameUI001: usize = 0x1175C0; - pub const INETSUPPORT_001: usize = 0xE6DA0; - pub const Source2EngineToServerStringTable001: usize = 0xA1820; - pub const Source2EngineToServer001: usize = 0x8B650; - pub const Source2EngineToClientStringTable001: usize = 0x84050; - pub const Source2EngineToClient001: usize = 0x5A6B0; + pub const SimpleEngineLoopService_001: usize = 0x1E47A0; + pub const ClientServerEngineLoopService_001: usize = 0x1DA470; + pub const KeyValueCache001: usize = 0x1D6810; + pub const HostStateMgr001: usize = 0x1D4220; + pub const GameEventSystemServerV001: usize = 0x1CF640; + pub const GameEventSystemClientV001: usize = 0x1CF630; + pub const EngineServiceMgr001: usize = 0x1CAF50; + pub const VProfService_001: usize = 0x1B8CE0; + pub const ToolService_001: usize = 0x1B7A40; + pub const StatsService_001: usize = 0x1B2CC0; + pub const SplitScreenService_001: usize = 0x1AFF30; + pub const SoundService_001: usize = 0x1AAA80; + pub const ScreenshotService001: usize = 0x1A6950; + pub const RenderService_001: usize = 0x1A3CB0; + pub const NetworkService_001: usize = 0x1A37C0; + pub const NetworkServerService_001: usize = 0x19E860; + pub const NetworkP2PService_001: usize = 0x19A270; + pub const NetworkClientService_001: usize = 0x193EA0; + pub const MapListService_001: usize = 0x18CEE0; + pub const InputService_001: usize = 0x17AC50; + pub const GameUIService_001: usize = 0x175710; + pub const GameResourceServiceServerV001: usize = 0x173470; + pub const GameResourceServiceClientV001: usize = 0x173460; + pub const BugService001: usize = 0x16C490; + pub const BenchmarkService001: usize = 0x16AC60; + pub const VENGINE_GAMEUIFUNCS_VERSION005: usize = 0x118380; + pub const EngineGameUI001: usize = 0x117640; + pub const INETSUPPORT_001: usize = 0xE6E20; + pub const Source2EngineToServerStringTable001: usize = 0xA18A0; + pub const Source2EngineToServer001: usize = 0x8B6D0; + pub const Source2EngineToClientStringTable001: usize = 0x840D0; + pub const Source2EngineToClient001: usize = 0x5A730; } pub mod filesystem_stdio_dll { @@ -102,7 +102,7 @@ pub mod navsystem_dll { } pub mod networksystem_dll { - pub const SerializedEntitiesVersion001: usize = 0xD29C0; + pub const SerializedEntitiesVersion001: usize = 0xD2A60; pub const NetworkSystemVersion001: usize = 0xBCD00; pub const NetworkMessagesVersion001: usize = 0x9CD30; pub const FlattenedSerializersVersion001: usize = 0x7C4E0; @@ -129,9 +129,9 @@ pub mod pulse_system_dll { } pub mod rendersystemdx11_dll { - pub const RenderUtils_001: usize = 0x53440; - pub const VRenderDeviceMgrBackdoor001: usize = 0x4AAA0; - pub const RenderDeviceMgr001: usize = 0x4AA90; + pub const RenderUtils_001: usize = 0x53470; + pub const VRenderDeviceMgrBackdoor001: usize = 0x4AAD0; + pub const RenderDeviceMgr001: usize = 0x4AAC0; } pub mod resourcesystem_dll { @@ -144,9 +144,9 @@ pub mod scenefilecache_dll { } pub mod scenesystem_dll { - pub const SceneUtils_001: usize = 0x13D610; - pub const SceneSystem_002: usize = 0xCAAB0; - pub const RenderingPipelines_001: usize = 0x8EA10; + pub const SceneUtils_001: usize = 0x13D620; + pub const SceneSystem_002: usize = 0xCAAC0; + pub const RenderingPipelines_001: usize = 0x8EA20; } pub mod schemasystem_dll { @@ -154,16 +154,16 @@ pub mod schemasystem_dll { } pub mod server_dll { - pub const NavGameTest001: usize = 0xA2B310; - pub const ServerToolsInfo_001: usize = 0x82F8C0; - pub const Source2GameClients001: usize = 0x82F8D0; - pub const Source2GameEntities001: usize = 0x82F8E0; - pub const Source2Server001: usize = 0x82F8F0; - pub const EmptyWorldService001_Server: usize = 0x584640; - pub const Source2ServerConfig001: usize = 0x564650; - pub const EntitySubclassUtilsV001: usize = 0x2C69A0; - pub const customnavsystem001: usize = 0x243420; - pub const Source2GameDirector001: usize = 0x13E9C0; + pub const NavGameTest001: usize = 0xA2B2F0; + pub const ServerToolsInfo_001: usize = 0x82F8A0; + pub const Source2GameClients001: usize = 0x82F8B0; + pub const Source2GameEntities001: usize = 0x82F8C0; + pub const Source2Server001: usize = 0x82F8D0; + pub const EmptyWorldService001_Server: usize = 0x584620; + pub const Source2ServerConfig001: usize = 0x564630; + pub const EntitySubclassUtilsV001: usize = 0x2C6980; + pub const customnavsystem001: usize = 0x243400; + pub const Source2GameDirector001: usize = 0x13E9A0; } pub mod soundsystem_dll { diff --git a/generated/offsets.cs b/generated/offsets.cs index b01351f..aa1318f 100644 --- a/generated/offsets.cs +++ b/generated/offsets.cs @@ -1,7 +1,8 @@ public static class client_dll { - public const nint entityList = 0x178C888; - public const nint globalVars = 0x168FCD8; - public const nint localPlayerController = 0x17DB108; - public const nint viewAngles = 0x18D95A0; - public const nint viewMatrix = 0x187A6E0; + public const nint entityList = 0x178C878; + public const nint globalVars = 0x168FCC8; + public const nint localPlayerController = 0x17DB0F8; + public const nint localPlayerPawn = 0x1879BE8; + public const nint viewAngles = 0x18D9590; + public const nint viewMatrix = 0x187A6D0; } \ No newline at end of file diff --git a/generated/offsets.hpp b/generated/offsets.hpp index 16d0c3d..a934210 100644 --- a/generated/offsets.hpp +++ b/generated/offsets.hpp @@ -3,9 +3,10 @@ #include namespace client_dll { - constexpr std::ptrdiff_t entityList = 0x178C888; - constexpr std::ptrdiff_t globalVars = 0x168FCD8; - constexpr std::ptrdiff_t localPlayerController = 0x17DB108; - constexpr std::ptrdiff_t viewAngles = 0x18D95A0; - constexpr std::ptrdiff_t viewMatrix = 0x187A6E0; + constexpr std::ptrdiff_t entityList = 0x178C878; + constexpr std::ptrdiff_t globalVars = 0x168FCC8; + constexpr std::ptrdiff_t localPlayerController = 0x17DB0F8; + constexpr std::ptrdiff_t localPlayerPawn = 0x1879BE8; + constexpr std::ptrdiff_t viewAngles = 0x18D9590; + constexpr std::ptrdiff_t viewMatrix = 0x187A6D0; } \ No newline at end of file diff --git a/generated/offsets.json b/generated/offsets.json index 945e349..e844cec 100644 --- a/generated/offsets.json +++ b/generated/offsets.json @@ -1,9 +1,10 @@ { "client_dll": { - "entityList": 24692872, - "globalVars": 23657688, - "localPlayerController": 25014536, - "viewAngles": 26056096, - "viewMatrix": 25667296 + "entityList": 24692856, + "globalVars": 23657672, + "localPlayerController": 25014520, + "localPlayerPawn": 25664488, + "viewAngles": 26056080, + "viewMatrix": 25667280 } } \ No newline at end of file diff --git a/generated/offsets.rs b/generated/offsets.rs index 5ffa251..defd490 100644 --- a/generated/offsets.rs +++ b/generated/offsets.rs @@ -1,9 +1,10 @@ #![allow(non_snake_case, non_upper_case_globals)] pub mod client_dll { - pub const entityList: usize = 0x178C888; - pub const globalVars: usize = 0x168FCD8; - pub const localPlayerController: usize = 0x17DB108; - pub const viewAngles: usize = 0x18D95A0; - pub const viewMatrix: usize = 0x187A6E0; + pub const entityList: usize = 0x178C878; + pub const globalVars: usize = 0x168FCC8; + pub const localPlayerController: usize = 0x17DB0F8; + pub const localPlayerPawn: usize = 0x1879BE8; + pub const viewAngles: usize = 0x18D9590; + pub const viewMatrix: usize = 0x187A6D0; } \ No newline at end of file diff --git a/src/config.rs b/src/config.rs index e7c315c..7a9c390 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,13 +1,21 @@ use serde::{Deserialize, Serialize}; +#[derive(Debug, Deserialize, Serialize)] +#[serde(tag = "type", rename_all = "camelCase")] +pub enum Operation { + Add { value: usize }, + Dereference { times: Option }, + Jmp, + RipRelative, + Subtract { value: usize }, +} + #[derive(Debug, Deserialize, Serialize)] pub struct Signature { pub name: String, pub module: String, pub pattern: String, - pub relative: bool, - pub levels: i32, - pub offset: i32, + pub operations: Vec, } #[derive(Debug, Deserialize, Serialize)] diff --git a/src/dumpers/interfaces.rs b/src/dumpers/interfaces.rs index 8ee7eac..20f57b7 100644 --- a/src/dumpers/interfaces.rs +++ b/src/dumpers/interfaces.rs @@ -15,7 +15,7 @@ pub fn dump_interfaces(builders: &mut Vec, process: &Process) - log::info!("Dumping interfaces in {}...", module_name); 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 .read_memory::(create_interface_address) diff --git a/src/dumpers/offsets.rs b/src/dumpers/offsets.rs index 325ac50..9069a90 100644 --- a/src/dumpers/offsets.rs +++ b/src/dumpers/offsets.rs @@ -1,7 +1,7 @@ use std::fs::File; use crate::builder::FileBuilderEnum; -use crate::config::Config; +use crate::config::{Config, Operation}; use crate::error::{Error, Result}; use crate::remote::Process; @@ -21,18 +21,28 @@ pub fn dump_offsets(builders: &mut Vec, process: &Process) -> R let mut address = process.find_pattern(&signature.module, &signature.pattern)?; - if signature.relative { - address = process.resolve_relative(address)?; - } - - if signature.levels > 0 { - for _ in 0..signature.levels { - address = process.read_memory::(address)?; + for operation in signature.operations { + match operation { + Operation::Add { value } => { + address += value; + } + Operation::Dereference { times } => { + for _ in 0..times.unwrap_or(1) { + address = process.read_memory::(address)?; + } + } + Operation::Jmp => { + address = process.resolve_jmp(address)?; + } + Operation::RipRelative => { + address = process.resolve_rip(address)?; + } + Operation::Subtract { value } => { + address -= value; + } } } - address += signature.offset as usize; - log::info!( " -> Found '{}' @ {:#X} (RVA: {:#X})", signature.name, diff --git a/src/remote/process.rs b/src/remote/process.rs index 7a55a5a..1dc4016 100644 --- a/src/remote/process.rs +++ b/src/remote/process.rs @@ -175,7 +175,7 @@ impl Process { Ok((address + 0x5) + displacement as usize) } - pub fn resolve_relative(&self, address: usize) -> Result { + pub fn resolve_rip(&self, address: usize) -> Result { let displacement = self.read_memory::(address + 0x3)?; Ok((address + 0x7) + displacement as usize) diff --git a/src/sdk/schema_system.rs b/src/sdk/schema_system.rs index 951879e..a92b1bd 100644 --- a/src/sdk/schema_system.rs +++ b/src/sdk/schema_system.rs @@ -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" )?; - address = process.resolve_relative(address)?; + address = process.resolve_rip(address)?; Ok(Self { process, address }) }