fix: remove hkcheck as it's not needed (yet?)

This commit is contained in:
amizing25
2025-03-15 05:48:53 +07:00
parent 8861b07cb8
commit bc651397e6
2 changed files with 68 additions and 45 deletions
+35 -34
View File
@@ -10,7 +10,7 @@ use windows::{
core::s,
};
use crate::addr::{GAME_ASSEMBLY_BASE, UNITY_PLAYER_BASE};
use crate::addr::GAME_ASSEMBLY_BASE;
#[allow(static_mut_refs)]
unsafe fn game_assembly_slice() -> &'static [u8] {
@@ -38,39 +38,14 @@ unsafe fn game_assembly_slice() -> &'static [u8] {
}
}
#[allow(static_mut_refs)]
unsafe fn unity_player_slice() -> &'static [u8] {
static mut SLICE: OnceCell<&[u8]> = OnceCell::new();
unsafe {
SLICE.get_or_init(|| {
let module = GetModuleHandleA(s!("UnityPlayer.dll")).unwrap();
let mut module_info = MODULEINFO {
lpBaseOfDll: std::ptr::null_mut(),
SizeOfImage: 0,
EntryPoint: std::ptr::null_mut(),
};
GetModuleInformation(
GetCurrentProcess(),
module,
&mut module_info,
std::mem::size_of::<MODULEINFO>() as u32,
)
.unwrap();
std::slice::from_raw_parts(
module.0 as *const u8,
module_info.SizeOfImage.try_into().unwrap(),
)
})
}
}
pub unsafe fn scan_il2cpp_section(pat: &str) -> Option<usize> {
let mut slice = unsafe { game_assembly_slice() };
scan_first_match(&mut slice, pat).unwrap().map(|address| {
let slice = unsafe { game_assembly_slice() };
let instruction = &slice[address..address + 1][0];
if *instruction == 0xE8 {
let offset = i32::from_le_bytes((&slice[address + 1..address + 1 + 4]).try_into().unwrap());
let offset =
i32::from_le_bytes((&slice[address + 1..address + 1 + 4]).try_into().unwrap());
let pointer = offset as usize + 5 + address;
return GAME_ASSEMBLY_BASE.wrapping_add(pointer);
}
@@ -78,9 +53,35 @@ 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))
}
// #[allow(static_mut_refs)]
// unsafe fn unity_player_slice() -> &'static [u8] {
// static mut SLICE: OnceCell<&[u8]> = OnceCell::new();
// unsafe {
// SLICE.get_or_init(|| {
// let module = GetModuleHandleA(s!("UnityPlayer.dll")).unwrap();
// let mut module_info = MODULEINFO {
// lpBaseOfDll: std::ptr::null_mut(),
// SizeOfImage: 0,
// EntryPoint: std::ptr::null_mut(),
// };
// GetModuleInformation(
// GetCurrentProcess(),
// module,
// &mut module_info,
// std::mem::size_of::<MODULEINFO>() as u32,
// )
// .unwrap();
// std::slice::from_raw_parts(
// module.0 as *const u8,
// module_info.SizeOfImage.try_into().unwrap(),
// )
// })
// }
// }
// 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))
// }