Advertisement
bobmarley12345

C# Pointer Chain Follower Thingy

Oct 18th, 2023
868
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.72 KB | None | 0 0
  1. // Get the live address from a known base pointer and a collection of pointer offsets where each one is added to the last pointer
  2. public static unsafe long GetPointerAddress(IntPtr hProcess, long pointer, int[] offsets = null) {
  3.     // pointer should contain the BaseAddress of the module being targeted
  4.     if (offsets == null || offsets.Length < 1) {
  5.         return pointer;
  6.     }
  7.     byte* buf = stackalloc byte[8];
  8.     ReadProcessMemory_Unsafe(hProcess, pointer, buf, 8);
  9.     for (int i = 0, j = offsets.Length - 1; i < j; i++) {
  10.         pointer = *(long*) buf + offsets[i];
  11.         ReadProcessMemory_Unsafe(hProcess, pointer, buf, 8);
  12.     }
  13.     pointer = *(long*) buf + offsets[offsets.Length - 1];
  14.     return pointer;
  15. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement