hk4e-patch/src/marshal.rs

16 lines
472 B
Rust
Raw Normal View History

2024-04-10 19:35:01 +00:00
use std::ffi::CStr;
use crate::util;
2024-08-26 12:51:42 +00:00
const PTR_TO_STRING_ANSI: usize = 0x104F80F0;
2024-04-10 19:35:01 +00:00
type MarshalPtrToStringAnsi = unsafe extern "fastcall" fn(*const u8) -> *const u8;
pub unsafe fn ptr_to_string_ansi(content: &CStr) -> *const u8 {
let func = std::mem::transmute::<usize, MarshalPtrToStringAnsi>(base() + PTR_TO_STRING_ANSI);
func(content.to_bytes_with_nul().as_ptr())
}
unsafe fn base() -> usize {
2024-08-26 12:51:42 +00:00
util::try_get_base_address("GenshinImpact.exe").unwrap()
2024-04-10 19:35:01 +00:00
}