refactor: minor changes
- use VA directly on interceptor instead of RVA
This commit is contained in:
+25
-5
@@ -45,7 +45,8 @@ pub unsafe fn scan_il2cpp_section(pat: &str) -> Option<usize> {
|
||||
match slice.get(address) {
|
||||
// jmp sub_xxxxxxx
|
||||
Some(&0xE8) => {
|
||||
let offset = i32::from_le_bytes(slice[address + 1..address + 5].try_into().unwrap());
|
||||
let offset =
|
||||
i32::from_le_bytes(slice[address + 1..address + 5].try_into().unwrap());
|
||||
GAME_ASSEMBLY_BASE.wrapping_add(address + 5 + offset as usize)
|
||||
}
|
||||
// mov rcx, [rip + offset] (0x48 0x8B 0x0D XXXXXXXX)
|
||||
@@ -53,7 +54,8 @@ pub unsafe fn scan_il2cpp_section(pat: &str) -> Option<usize> {
|
||||
if slice.get(address + 1) == Some(&0x8B)
|
||||
&& slice.get(address + 2) == Some(&0x0D) =>
|
||||
{
|
||||
let offset = i32::from_le_bytes(slice[address + 3..address + 7].try_into().unwrap());
|
||||
let offset =
|
||||
i32::from_le_bytes(slice[address + 3..address + 7].try_into().unwrap());
|
||||
GAME_ASSEMBLY_BASE.wrapping_add(address + 7 + offset as usize)
|
||||
}
|
||||
_ => GAME_ASSEMBLY_BASE.wrapping_add(address),
|
||||
@@ -89,7 +91,25 @@ pub unsafe fn scan_il2cpp_section(pat: &str) -> Option<usize> {
|
||||
|
||||
// pub unsafe fn scan_unity_player_section(pat: &str) -> Option<usize> {
|
||||
// let mut slice = unsafe { unity_player_slice() };
|
||||
// scan_first_match(&mut slice, pat)
|
||||
// .unwrap()
|
||||
// .map(|loc| UNITY_PLAYER_BASE.wrapping_add(loc))
|
||||
// scan_first_match(&mut slice, pat).unwrap().map(|address| {
|
||||
// let slice = unsafe { unity_player_slice() };
|
||||
// match slice.get(address) {
|
||||
// // jmp sub_xxxxxxx
|
||||
// Some(&0xE8) => {
|
||||
// let offset =
|
||||
// i32::from_le_bytes(slice[address + 1..address + 5].try_into().unwrap());
|
||||
// UNITY_PLAYER_BASE.wrapping_add(address + 5 + offset as usize)
|
||||
// }
|
||||
// // mov rcx, [rip + offset] (0x48 0x8B 0x0D XXXXXXXX)
|
||||
// Some(&0x48)
|
||||
// if slice.get(address + 1) == Some(&0x8B)
|
||||
// && slice.get(address + 2) == Some(&0x0D) =>
|
||||
// {
|
||||
// let offset =
|
||||
// i32::from_le_bytes(slice[address + 3..address + 7].try_into().unwrap());
|
||||
// UNITY_PLAYER_BASE.wrapping_add(address + 7 + offset as usize)
|
||||
// }
|
||||
// _ => UNITY_PLAYER_BASE.wrapping_add(address),
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user