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

@ -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"
}
]
}
]
}

View File

@ -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 {

View File

@ -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 {

View File

@ -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,

View File

@ -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 {

View File

@ -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;
}

View File

@ -3,9 +3,10 @@
#include <cstddef>
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;
}

View File

@ -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
}
}

View File

@ -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;
}

View File

@ -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<u16> },
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<Operation>,
}
#[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);
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::<usize>(create_interface_address)

View File

@ -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<FileBuilderEnum>, 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::<usize>(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::<usize>(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,

View File

@ -175,7 +175,7 @@ impl Process {
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)?;
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"
)?;
address = process.resolve_relative(address)?;
address = process.resolve_rip(address)?;
Ok(Self { process, address })
}