📦 Game Update 13969

This commit is contained in:
a2x
2023-11-14 13:59:04 +10:00
parent e03721e1bb
commit 1cc8196f93
80 changed files with 2376 additions and 2369 deletions

View File

@@ -106,7 +106,7 @@ pub fn dump_interfaces(
.filter(|m| m.name != "crashhandler64.dll")
{
if let Some(create_interface_export) = module.get_export_by_name("CreateInterface") {
info!("Dumping interfaces in <i><blue>{}</></>...", module.name);
info!("Dumping interfaces in <blue>{}</>...", module.name);
let create_interface_address =
process.resolve_rip(create_interface_export, 0x3, 0x7)?;
@@ -118,7 +118,7 @@ pub fn dump_interfaces(
let name = unsafe { (*node).name(process) }?;
debug!(
"Found <i><bright-yellow>{}</></> @ <bright-magenta>{:#X}</> (<i><blue>{}</></> + <bright-blue>{:#X}</>)",
"Found <bright-yellow>{}</> @ <bright-magenta>{:#X}</> (<blue>{}</> + <bright-blue>{:#X}</>)",
name,
instance,
module.name,

View File

@@ -38,10 +38,7 @@ pub fn dump_offsets(
let mut entries = Entries::new();
for signature in config.signatures {
debug!(
"Searching for <i><bright-yellow>{}</></>...",
signature.name
);
debug!("Searching for <bright-yellow>{}</>...", signature.name);
let module = process
.get_module_by_name(&signature.module)
@@ -51,7 +48,7 @@ pub fn dump_offsets(
Some(a) => a,
None => {
error!(
"Failed to find pattern for <i><bright-yellow>{}</></>.",
"Failed to find pattern for <bright-yellow>{}</>.",
signature.name
);
@@ -101,14 +98,14 @@ pub fn dump_offsets(
let (name, value) = if address < module.base() {
debug!(
"Found <i><bright-yellow>{}</></> @ <bright-blue>{:#X}</>",
"Found <bright-yellow>{}</> @ <bright-blue>{:#X}</>",
signature.name, address
);
(signature.name, address.0)
} else {
debug!(
"Found <i><bright-yellow>{}</></> @ <bright-magenta>{:#X}</> (<i><blue>{}</></> + <bright-blue>{:#X}</>)",
"Found <bright-yellow>{}</> @ <bright-magenta>{:#X}</> (<blue>{}</> + <bright-blue>{:#X}</>)",
signature.name,
address,
signature.module,
@@ -165,7 +162,7 @@ mod tests {
.expect("Failed to find engine2.dll")
.base();
let build_number = process.read_memory::<u32>(engine_base + 0x48B524)?;
let build_number = process.read_memory::<u32>(engine_base + 0x48B524)?; // dwBuildNumber
println!("Build number: {}", build_number);
@@ -181,14 +178,14 @@ mod tests {
.expect("Failed to find client.dll")
.base();
let force_attack = process.read_memory::<u32>(client_base + 0x16B2310)?;
let force_attack_2 = process.read_memory::<u32>(client_base + 0x16B23A0)?;
let force_backward = process.read_memory::<u32>(client_base + 0x16B25E0)?;
let force_crouch = process.read_memory::<u32>(client_base + 0x16B28B0)?;
let force_forward = process.read_memory::<u32>(client_base + 0x16B2550)?;
let force_jump = process.read_memory::<u32>(client_base + 0x16B2820)?;
let force_left = process.read_memory::<u32>(client_base + 0x16B2670)?;
let force_right = process.read_memory::<u32>(client_base + 0x16B2700)?;
let force_attack = process.read_memory::<u32>(client_base + 0x16B2300)?; // dwForceAttack
let force_attack_2 = process.read_memory::<u32>(client_base + 0x16B2390)?; // dwForceAttack2
let force_backward = process.read_memory::<u32>(client_base + 0x16B25D0)?; // dwForceBackward
let force_crouch = process.read_memory::<u32>(client_base + 0x16B28A0)?; // dwForceCrouch
let force_forward = process.read_memory::<u32>(client_base + 0x16B2540)?; // dwForceForward
let force_jump = process.read_memory::<u32>(client_base + 0x16B2810)?; // dwForceJump
let force_left = process.read_memory::<u32>(client_base + 0x16B2660)?; // dwForceLeft
let force_right = process.read_memory::<u32>(client_base + 0x16B26F0)?; // dwForceRight
let get_key_state = |value: u32| -> &str {
match value {
@@ -258,7 +255,7 @@ mod tests {
.expect("Failed to find client.dll")
.base();
let global_vars = process.read_memory::<*const GlobalVarsBase>(client_base + 0x16AE498)?;
let global_vars = process.read_memory::<*const GlobalVarsBase>(client_base + 0x16AE488)?; // dwGlobalVars
let current_map_name = unsafe {
(*global_vars)
@@ -280,7 +277,7 @@ mod tests {
.expect("Failed to find inputsystem.dll")
.base();
let input_system = input_system_base + 0x35770;
let input_system = input_system_base + 0x35770; // dwInputSystem
let is_key_down = |key_code: i32| -> bool {
let key_map_element = process
@@ -307,9 +304,9 @@ mod tests {
.expect("Failed to find client.dll")
.base();
let local_player_controller = process.read_memory::<usize>(client_base + 0x17FCDB8)?;
let local_player_controller = process.read_memory::<usize>(client_base + 0x17FCDC8)?; // dwLocalPlayerController
let player_name = process.read_string((local_player_controller + 0x610).into())?;
let player_name = process.read_string((local_player_controller + 0x628).into())?; // m_iszPlayerName
println!("Local player name: {}", player_name);
@@ -325,11 +322,21 @@ mod tests {
.expect("Failed to find client.dll")
.base();
let local_player_pawn = process.read_memory::<usize>(client_base + 0x16B9388)?;
let local_player_pawn = process.read_memory::<usize>(client_base + 0x16B9388)?; // dwLocalPlayerPawn
let old_origin = process.read_memory::<[f32; 3]>((local_player_pawn + 0x1224).into())?;
let game_scene_node = process.read_memory::<usize>((local_player_pawn + 0x310).into())?; // m_pGameSceneNode
println!("Old local player origin: {:?}", old_origin);
#[derive(Debug)]
#[repr(C)]
struct Vector3D {
x: f32,
y: f32,
z: f32,
}
let origin = process.read_memory::<Vector3D>((game_scene_node + 0xC8).into())?; // m_vecAbsOrigin
println!("Local player origin: {:?}", origin);
Ok(())
}
@@ -343,8 +350,8 @@ mod tests {
.expect("Failed to find engine2.dll")
.base();
let window_width = process.read_memory::<u32>(engine_base + 0x541E18)?;
let window_height = process.read_memory::<u32>(engine_base + 0x541E1C)?;
let window_width = process.read_memory::<u32>(engine_base + 0x541E18)?; // dwWindowWidth
let window_height = process.read_memory::<u32>(engine_base + 0x541E1C)?; // dwWindowHeight
println!("Window size: {}x{}", window_width, window_height);

View File

@@ -31,7 +31,7 @@ pub fn dump_schemas(
for type_scope in schema_system.type_scopes()? {
let module_name = type_scope.module_name()?;
info!("Generating files for <i><blue>{}</></>...", module_name);
info!("Generating files for <blue>{}</>...", module_name);
let mut entries = Entries::new();
@@ -39,7 +39,7 @@ pub fn dump_schemas(
let parent_name = class.parent()?.map(|p| p.name().to_string());
debug!(
"<i><u><bright-yellow>{}</></></> : <i><u><yellow>{}</></></>",
"<u><bright-yellow>{}</></> : <u><yellow>{}</></>",
class.name(),
parent_name.clone().unwrap_or_default()
);