C# 如何把委托函数的地址写到byte数组里面?
写一个函数的hook,找不到资料,代码如下:
IntPtr P = Marshal.GetFunctionPointerForDelegate(new HookProc(myFunc));
ptr=???
HookBytes[0] = 0x68;
Marshal.Copy(ptr, HookBytes, 1, 4);
HookBytes[5] = 0xC3;
我的理解,ptr应该是指向P的实际内容的 IntPtr 吧
如果不用unsafe的话,怎么把IntPtr P的指向函数的地址的数值,写到HookBytes里面呢?
------解决方案--------------------IntPtr已经很简单了,就是包装了一个整数
byte[] ps = BitConverter.GetBytes(p.ToInt32())
Array.Copy(...)