```rust use ncheat::*; fn test() { unsafe { let process_name = "explorer.exe";
// "explorer.exe" -> "Explorer.EXE"
let module_name = "Explorer.EXE";
let process_id = get_process_id_64(process_name).unwrap();
println!("process_name: {process_name}");
println!("process_id: {process_id}");
let module_info = get_module_info_64(process_id, module_name).unwrap();
println!("module_name: {module_name}");
println!("module address: {:X}", module_info.modBaseAddr as isize,);
println!("module size: {:X}", module_info.modBaseSize,);
let test_data: [u8; 30] = [
0x12, 0xAF, 0xBF, 0xC4, 0x51, 0x21, 0x98, 0x13, 0xFF, 0xBA, 0x12, 0xAF, 0xBF, 0xC4,
0x51, 0x21, 0x98, 0x13, 0xFF, 0xBA, 0x12, 0xAF, 0xBF, 0xC4, 0x51, 0x21, 0x98, 0x13,
0xFF, 0xBA,
];
// ** or ??
let test_offset = pattern_find("51 ?? ** 13 FF ??", &test_data).unwrap();
println!("offset: {:#X}", test_offset);
let offsets = pattern_scan("51 ** ?? 13 FF **", &test_data).unwrap();
println!("offsets: {:?}", offsets);
let explorer_pat = "48 89 5C 24 08 57 48 83 EC 30 B9 01";
let process_handle = get_process_handle(process_id);
let explorer_module_data = memory_read(
process_handle,
module_info.modBaseAddr as isize,
module_info.modBaseSize as usize,
)
.unwrap();
let explorer_offset = pattern_find(explorer_pat, &explorer_module_data).unwrap();
println!("Explorer.EXE pat offset: {explorer_offset:X?}");
}
}
c
processname: explorer.exe
processid: 13844
module_name: Explorer.EXE
module address: 7FF7C1810000
module size: 49D000
offset: 4
offsets: [4, 14, 24]
Explorer.EXE pat offset: A0420
```