首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-07-04 
C# 如何把委托函数的地址写到byte数组里面?写一个函数的hook,找不到资料,代码如下:IntPtr P Marshal.Get

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

热点排行