Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Get the live address from a known base pointer and a collection of pointer offsets where each one is added to the last pointer
- public static unsafe long GetPointerAddress(IntPtr hProcess, long pointer, int[] offsets = null) {
- // pointer should contain the BaseAddress of the module being targeted
- if (offsets == null || offsets.Length < 1) {
- return pointer;
- }
- byte* buf = stackalloc byte[8];
- ReadProcessMemory_Unsafe(hProcess, pointer, buf, 8);
- for (int i = 0, j = offsets.Length - 1; i < j; i++) {
- pointer = *(long*) buf + offsets[i];
- ReadProcessMemory_Unsafe(hProcess, pointer, buf, 8);
- }
- pointer = *(long*) buf + offsets[offsets.Length - 1];
- return pointer;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement