Output RVA instead of absolute offset for some fields

This commit is contained in:
a2x 2024-06-29 09:59:06 +10:00
parent f3eef1fa5d
commit e6fde4904c
5 changed files with 34 additions and 22 deletions

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2024-06-27 14:27:03.514757 UTC // 2024-06-28 23:53:41.889494600 UTC
namespace CS2Dumper.Offsets { namespace CS2Dumper.Offsets {
// Module: client.dll // Module: client.dll
@ -25,7 +25,6 @@ namespace CS2Dumper.Offsets {
// Module: engine2.dll // Module: engine2.dll
public static class Engine2Dll { public static class Engine2Dll {
public const nint dwBuildNumber = 0x52F834; public const nint dwBuildNumber = 0x52F834;
public const nint dwEngineViewData = 0x5ECC0C;
public const nint dwNetworkGameClient = 0x52EBA0; public const nint dwNetworkGameClient = 0x52EBA0;
public const nint dwNetworkGameClient_clientTickCount = 0x178; public const nint dwNetworkGameClient_clientTickCount = 0x178;
public const nint dwNetworkGameClient_deltaTick = 0x278; public const nint dwNetworkGameClient_deltaTick = 0x278;
@ -34,7 +33,6 @@ namespace CS2Dumper.Offsets {
public const nint dwNetworkGameClient_maxClients = 0x270; public const nint dwNetworkGameClient_maxClients = 0x270;
public const nint dwNetworkGameClient_serverTickCount = 0x174; public const nint dwNetworkGameClient_serverTickCount = 0x174;
public const nint dwNetworkGameClient_signOnState = 0x260; public const nint dwNetworkGameClient_signOnState = 0x260;
public const nint dwSoundService = 0x5ECB70;
public const nint dwWindowHeight = 0x5F0424; public const nint dwWindowHeight = 0x5F0424;
public const nint dwWindowWidth = 0x5F0420; public const nint dwWindowWidth = 0x5F0420;
} }
@ -45,6 +43,11 @@ namespace CS2Dumper.Offsets {
// Module: matchmaking.dll // Module: matchmaking.dll
public static class MatchmakingDll { public static class MatchmakingDll {
public const nint dwGameTypes = 0x1A41C0; public const nint dwGameTypes = 0x1A41C0;
public const nint dwGameTypes_mapName = 0x1A42E0; public const nint dwGameTypes_mapName = 0x120;
}
// Module: soundsystem.dll
public static class SoundsystemDll {
public const nint dwSoundSystem = 0x334E40;
public const nint dwSoundSystem_engineViewData = 0x7C;
} }
} }

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2024-06-27 14:27:03.514757 UTC // 2024-06-28 23:53:41.889494600 UTC
#pragma once #pragma once
@ -30,7 +30,6 @@ namespace cs2_dumper {
// Module: engine2.dll // Module: engine2.dll
namespace engine2_dll { namespace engine2_dll {
constexpr std::ptrdiff_t dwBuildNumber = 0x52F834; constexpr std::ptrdiff_t dwBuildNumber = 0x52F834;
constexpr std::ptrdiff_t dwEngineViewData = 0x5ECC0C;
constexpr std::ptrdiff_t dwNetworkGameClient = 0x52EBA0; constexpr std::ptrdiff_t dwNetworkGameClient = 0x52EBA0;
constexpr std::ptrdiff_t dwNetworkGameClient_clientTickCount = 0x178; constexpr std::ptrdiff_t dwNetworkGameClient_clientTickCount = 0x178;
constexpr std::ptrdiff_t dwNetworkGameClient_deltaTick = 0x278; constexpr std::ptrdiff_t dwNetworkGameClient_deltaTick = 0x278;
@ -39,7 +38,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t dwNetworkGameClient_maxClients = 0x270; constexpr std::ptrdiff_t dwNetworkGameClient_maxClients = 0x270;
constexpr std::ptrdiff_t dwNetworkGameClient_serverTickCount = 0x174; constexpr std::ptrdiff_t dwNetworkGameClient_serverTickCount = 0x174;
constexpr std::ptrdiff_t dwNetworkGameClient_signOnState = 0x260; constexpr std::ptrdiff_t dwNetworkGameClient_signOnState = 0x260;
constexpr std::ptrdiff_t dwSoundService = 0x5ECB70;
constexpr std::ptrdiff_t dwWindowHeight = 0x5F0424; constexpr std::ptrdiff_t dwWindowHeight = 0x5F0424;
constexpr std::ptrdiff_t dwWindowWidth = 0x5F0420; constexpr std::ptrdiff_t dwWindowWidth = 0x5F0420;
} }
@ -50,7 +48,12 @@ namespace cs2_dumper {
// Module: matchmaking.dll // Module: matchmaking.dll
namespace matchmaking_dll { namespace matchmaking_dll {
constexpr std::ptrdiff_t dwGameTypes = 0x1A41C0; constexpr std::ptrdiff_t dwGameTypes = 0x1A41C0;
constexpr std::ptrdiff_t dwGameTypes_mapName = 0x1A42E0; constexpr std::ptrdiff_t dwGameTypes_mapName = 0x120;
}
// Module: soundsystem.dll
namespace soundsystem_dll {
constexpr std::ptrdiff_t dwSoundSystem = 0x334E40;
constexpr std::ptrdiff_t dwSoundSystem_engineViewData = 0x7C;
} }
} }
} }

View File

@ -20,7 +20,6 @@
}, },
"engine2.dll": { "engine2.dll": {
"dwBuildNumber": 5437492, "dwBuildNumber": 5437492,
"dwEngineViewData": 6212620,
"dwNetworkGameClient": 5434272, "dwNetworkGameClient": 5434272,
"dwNetworkGameClient_clientTickCount": 376, "dwNetworkGameClient_clientTickCount": 376,
"dwNetworkGameClient_deltaTick": 632, "dwNetworkGameClient_deltaTick": 632,
@ -29,7 +28,6 @@
"dwNetworkGameClient_maxClients": 624, "dwNetworkGameClient_maxClients": 624,
"dwNetworkGameClient_serverTickCount": 372, "dwNetworkGameClient_serverTickCount": 372,
"dwNetworkGameClient_signOnState": 608, "dwNetworkGameClient_signOnState": 608,
"dwSoundService": 6212464,
"dwWindowHeight": 6226980, "dwWindowHeight": 6226980,
"dwWindowWidth": 6226976 "dwWindowWidth": 6226976
}, },
@ -38,6 +36,10 @@
}, },
"matchmaking.dll": { "matchmaking.dll": {
"dwGameTypes": 1720768, "dwGameTypes": 1720768,
"dwGameTypes_mapName": 1721056 "dwGameTypes_mapName": 288
},
"soundsystem.dll": {
"dwSoundSystem": 3362368,
"dwSoundSystem_engineViewData": 124
} }
} }

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2024-06-27 14:27:03.514757 UTC // 2024-06-28 23:53:41.889494600 UTC
#![allow(non_upper_case_globals, unused)] #![allow(non_upper_case_globals, unused)]
@ -28,7 +28,6 @@ pub mod cs2_dumper {
// Module: engine2.dll // Module: engine2.dll
pub mod engine2_dll { pub mod engine2_dll {
pub const dwBuildNumber: usize = 0x52F834; pub const dwBuildNumber: usize = 0x52F834;
pub const dwEngineViewData: usize = 0x5ECC0C;
pub const dwNetworkGameClient: usize = 0x52EBA0; pub const dwNetworkGameClient: usize = 0x52EBA0;
pub const dwNetworkGameClient_clientTickCount: usize = 0x178; pub const dwNetworkGameClient_clientTickCount: usize = 0x178;
pub const dwNetworkGameClient_deltaTick: usize = 0x278; pub const dwNetworkGameClient_deltaTick: usize = 0x278;
@ -37,7 +36,6 @@ pub mod cs2_dumper {
pub const dwNetworkGameClient_maxClients: usize = 0x270; pub const dwNetworkGameClient_maxClients: usize = 0x270;
pub const dwNetworkGameClient_serverTickCount: usize = 0x174; pub const dwNetworkGameClient_serverTickCount: usize = 0x174;
pub const dwNetworkGameClient_signOnState: usize = 0x260; pub const dwNetworkGameClient_signOnState: usize = 0x260;
pub const dwSoundService: usize = 0x5ECB70;
pub const dwWindowHeight: usize = 0x5F0424; pub const dwWindowHeight: usize = 0x5F0424;
pub const dwWindowWidth: usize = 0x5F0420; pub const dwWindowWidth: usize = 0x5F0420;
} }
@ -48,7 +46,12 @@ pub mod cs2_dumper {
// Module: matchmaking.dll // Module: matchmaking.dll
pub mod matchmaking_dll { pub mod matchmaking_dll {
pub const dwGameTypes: usize = 0x1A41C0; pub const dwGameTypes: usize = 0x1A41C0;
pub const dwGameTypes_mapName: usize = 0x1A42E0; pub const dwGameTypes_mapName: usize = 0x120;
}
// Module: soundsystem.dll
pub mod soundsystem_dll {
pub const dwSoundSystem: usize = 0x334E40;
pub const dwSoundSystem_engineViewData: usize = 0x7C;
} }
} }
} }

View File

@ -111,9 +111,6 @@ pattern_map! {
"dwNetworkGameClient_maxClients" => pattern!("8b81u4 c3cccccccccccccccccc 8b81${} ffc0") => None, "dwNetworkGameClient_maxClients" => pattern!("8b81u4 c3cccccccccccccccccc 8b81${} ffc0") => None,
"dwNetworkGameClient_serverTickCount" => pattern!("8b81u4 c3 cccccccccccccccccc 83b9") => None, "dwNetworkGameClient_serverTickCount" => pattern!("8b81u4 c3 cccccccccccccccccc 83b9") => None,
"dwNetworkGameClient_signOnState" => pattern!("448b81u4 488d0d") => None, "dwNetworkGameClient_signOnState" => pattern!("448b81u4 488d0d") => None,
"dwSoundService" => pattern!("488905${'} 4c8d4424? 488d05") => Some(|_view, map, rva| {
map.insert("dwEngineViewData".to_string(), rva + 0x9C);
}),
"dwWindowHeight" => pattern!("8b05${'} 8903") => None, "dwWindowHeight" => pattern!("8b05${'} 8903") => None,
"dwWindowWidth" => pattern!("8b05${'} 8907") => None, "dwWindowWidth" => pattern!("8b05${'} 8907") => None,
}, },
@ -121,20 +118,24 @@ pattern_map! {
"dwInputSystem" => pattern!("488905${'} 488d05") => None, "dwInputSystem" => pattern!("488905${'} 488d05") => None,
}, },
matchmaking => { matchmaking => {
"dwGameTypes" => pattern!("488d0d${'} 33d2") => Some(|_view, map, rva| { "dwGameTypes" => pattern!("488d0d${'} 33d2") => None,
map.insert("dwGameTypes_mapName".to_string(), rva + 0x120); "dwGameTypes_mapName" => pattern!("488b81u4 4885c074? 4883c0") => None,
}), },
soundsystem => {
"dwSoundSystem" => pattern!("488d05${'} c3 cccccccccccccccc 488915") => None,
"dwSoundSystem_engineViewData" => pattern!("0f1147u1 0f104b") => None,
}, },
} }
pub fn offsets(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<OffsetMap> { pub fn offsets(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<OffsetMap> {
let mut map = BTreeMap::new(); let mut map = BTreeMap::new();
let modules: [(&str, fn(PeView) -> BTreeMap<String, u32>); 4] = [ let modules: [(&str, fn(PeView) -> BTreeMap<String, u32>); 5] = [
("client.dll", client::offsets), ("client.dll", client::offsets),
("engine2.dll", engine2::offsets), ("engine2.dll", engine2::offsets),
("inputsystem.dll", input_system::offsets), ("inputsystem.dll", input_system::offsets),
("matchmaking.dll", matchmaking::offsets), ("matchmaking.dll", matchmaking::offsets),
("soundsystem.dll", soundsystem::offsets),
]; ];
for (module_name, offsets) in &modules { for (module_name, offsets) in &modules {