读书人

C# 怎么把委托函数的地址写到byte数组

发布时间: 2013-07-04 11:45:55 作者: rapoo

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(...)

读书人网 >C#

热点推荐