【发布时间】:2011-02-12 19:06:51
【问题描述】:
参考这个主题:Access memory address in c#,我试图了解如何通过知道其十六进制段:偏移量来寻址内存位置并提取数据。另外,我相信大小是可变的。我将不胜感激有关继续此操作的任何建议。
【问题讨论】:
-
你说的是读取属于另一个应用程序的内存吗?
参考这个主题:Access memory address in c#,我试图了解如何通过知道其十六进制段:偏移量来寻址内存位置并提取数据。另外,我相信大小是可变的。我将不胜感激有关继续此操作的任何建议。
【问题讨论】:
好吧,如果你想麻烦...
int bufSize = 12;
IntPtr ptr = (IntPtr) (0xffff *16U + 5);
byte[] data = new byte[bufSize];
Marshal.Copy(ptr, data, 0, bufSize);
【讨论】:
托管应用程序在具有线性地址空间的平台上运行。没有段,没有偏移。只有地址,你可以通过Marshal.Copy在任何地址读写。
【讨论】: