Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void Inject(MethodInfo ToReplace, MethodInfo ToInject)
- {
- RuntimeHelpers.PrepareMethod(ToReplace.MethodHandle);
- RuntimeHelpers.PrepareMethod(ToInject.MethodHandle);
- unsafe
- {
- byte* inject = (byte*)(IntPtr.Size == 4 ? *((int*)ToInject.MethodHandle.Value.ToPointer() + 2) : *((long*)ToInject.MethodHandle.Value.ToPointer() + 1));
- byte* target = (byte*)(IntPtr.Size == 4 ? *((int*)ToReplace.MethodHandle.Value.ToPointer() + 2) : *((long*)ToReplace.MethodHandle.Value.ToPointer() + 1));
- int* injectSrc = (int*)(inject + 1);
- int* targetSrc = (int*)(target + 1);
- *targetSrc = (((int)inject + 5) + *injectSrc) - ((int)target + 5);
- }
- }
Add Comment
Please, Sign In to add comment