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
// 2024-06-27 14:27:03.514757 UTC
// 2024-06-28 23:53:41.889494600 UTC
namespace CS2Dumper.Offsets {
// Module: client.dll
@ -25,7 +25,6 @@ namespace CS2Dumper.Offsets {
// Module: engine2.dll
public static class Engine2Dll {
public const nint dwBuildNumber = 0x52F834;
public const nint dwEngineViewData = 0x5ECC0C;
public const nint dwNetworkGameClient = 0x52EBA0;
public const nint dwNetworkGameClient_clientTickCount = 0x178;
public const nint dwNetworkGameClient_deltaTick = 0x278;
@ -34,7 +33,6 @@ namespace CS2Dumper.Offsets {
public const nint dwNetworkGameClient_maxClients = 0x270;
public const nint dwNetworkGameClient_serverTickCount = 0x174;
public const nint dwNetworkGameClient_signOnState = 0x260;
public const nint dwSoundService = 0x5ECB70;
public const nint dwWindowHeight = 0x5F0424;
public const nint dwWindowWidth = 0x5F0420;
}
@ -45,6 +43,11 @@ namespace CS2Dumper.Offsets {
// Module: matchmaking.dll
public static class MatchmakingDll {
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
// 2024-06-27 14:27:03.514757 UTC
// 2024-06-28 23:53:41.889494600 UTC
#pragma once
@ -30,7 +30,6 @@ namespace cs2_dumper {
// Module: engine2.dll
namespace engine2_dll {
constexpr std::ptrdiff_t dwBuildNumber = 0x52F834;
constexpr std::ptrdiff_t dwEngineViewData = 0x5ECC0C;
constexpr std::ptrdiff_t dwNetworkGameClient = 0x52EBA0;
constexpr std::ptrdiff_t dwNetworkGameClient_clientTickCount = 0x178;
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_serverTickCount = 0x174;
constexpr std::ptrdiff_t dwNetworkGameClient_signOnState = 0x260;
constexpr std::ptrdiff_t dwSoundService = 0x5ECB70;
constexpr std::ptrdiff_t dwWindowHeight = 0x5F0424;
constexpr std::ptrdiff_t dwWindowWidth = 0x5F0420;
}
@ -50,7 +48,12 @@ namespace cs2_dumper {
// Module: matchmaking.dll
namespace matchmaking_dll {
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": {
"dwBuildNumber": 5437492,
"dwEngineViewData": 6212620,
"dwNetworkGameClient": 5434272,
"dwNetworkGameClient_clientTickCount": 376,
"dwNetworkGameClient_deltaTick": 632,
@ -29,7 +28,6 @@
"dwNetworkGameClient_maxClients": 624,
"dwNetworkGameClient_serverTickCount": 372,
"dwNetworkGameClient_signOnState": 608,
"dwSoundService": 6212464,
"dwWindowHeight": 6226980,
"dwWindowWidth": 6226976
},
@ -38,6 +36,10 @@
},
"matchmaking.dll": {
"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
// 2024-06-27 14:27:03.514757 UTC
// 2024-06-28 23:53:41.889494600 UTC
#![allow(non_upper_case_globals, unused)]
@ -28,7 +28,6 @@ pub mod cs2_dumper {
// Module: engine2.dll
pub mod engine2_dll {
pub const dwBuildNumber: usize = 0x52F834;
pub const dwEngineViewData: usize = 0x5ECC0C;
pub const dwNetworkGameClient: usize = 0x52EBA0;
pub const dwNetworkGameClient_clientTickCount: usize = 0x178;
pub const dwNetworkGameClient_deltaTick: usize = 0x278;
@ -37,7 +36,6 @@ pub mod cs2_dumper {
pub const dwNetworkGameClient_maxClients: usize = 0x270;
pub const dwNetworkGameClient_serverTickCount: usize = 0x174;
pub const dwNetworkGameClient_signOnState: usize = 0x260;
pub const dwSoundService: usize = 0x5ECB70;
pub const dwWindowHeight: usize = 0x5F0424;
pub const dwWindowWidth: usize = 0x5F0420;
}
@ -48,7 +46,12 @@ pub mod cs2_dumper {
// Module: matchmaking.dll
pub mod matchmaking_dll {
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_serverTickCount" => pattern!("8b81u4 c3 cccccccccccccccccc 83b9") => 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,
"dwWindowWidth" => pattern!("8b05${'} 8907") => None,
},
@ -121,20 +118,24 @@ pattern_map! {
"dwInputSystem" => pattern!("488905${'} 488d05") => None,
},
matchmaking => {
"dwGameTypes" => pattern!("488d0d${'} 33d2") => Some(|_view, map, rva| {
map.insert("dwGameTypes_mapName".to_string(), rva + 0x120);
}),
"dwGameTypes" => pattern!("488d0d${'} 33d2") => None,
"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> {
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),
("engine2.dll", engine2::offsets),
("inputsystem.dll", input_system::offsets),
("matchmaking.dll", matchmaking::offsets),
("soundsystem.dll", soundsystem::offsets),
];
for (module_name, offsets) in &modules {