mirror of
https://github.com/a2x/cs2-dumper.git
synced 2025-04-26 22:05:36 +08:00
Handle situations when displacement is negative
This commit is contained in:
parent
5daaee321a
commit
ede86928d8
@ -199,7 +199,12 @@ impl Process {
|
||||
// The displacement value can be negative.
|
||||
let displacement = self.read_memory::<i32>(address + offset.unwrap_or(0x1))?;
|
||||
|
||||
Ok((address + displacement as usize) + length.unwrap_or(0x5))
|
||||
let final_address = if displacement.is_negative() {
|
||||
address - displacement.wrapping_abs() as usize
|
||||
} else {
|
||||
address + displacement as usize
|
||||
} + length.unwrap_or(0x5);
|
||||
Ok(final_address)
|
||||
}
|
||||
|
||||
pub fn resolve_rip(
|
||||
@ -211,7 +216,12 @@ impl Process {
|
||||
// The displacement value can be negative.
|
||||
let displacement = self.read_memory::<i32>(address + offset.unwrap_or(0x3))?;
|
||||
|
||||
Ok((address + displacement as usize) + length.unwrap_or(0x7))
|
||||
let final_address = if displacement.is_negative() {
|
||||
address - displacement.wrapping_abs() as usize
|
||||
} else {
|
||||
address + displacement as usize
|
||||
} + length.unwrap_or(0x7);
|
||||
Ok(final_address)
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
|
Loading…
x
Reference in New Issue
Block a user