如何使用c#访问内存中的地址?

时间:2009-11-05 21:28:18

标签: c#

如何在内存中读取变量的值,如二进制,我在C#中有指针地址?

4 个答案:

答案 0 :(得分:4)

本文介绍如何使用Win32 ReadProcessMemory函数执行此操作。请注意,使用unsafe关键字是不够的,因为它无法指定显式内存位置。

如何使用C#编写内存扫描仪
http://www.codeproject.com/KB/cs/sojaner_memory_scanner.aspx

要查看相关代码,您需要下载项目源,并检查MemoryScanner.cs类。

答案 1 :(得分:2)

你也可以使用像Marshal.ReadInt32()这样的Marshal.Read *函数。将指针值转换为IntPtr并使用Marshall类中的辅助方法来获取数据。

答案 2 :(得分:1)

答案 3 :(得分:0)

查看unsafe关键字。这允许您直接访问内存,就像在C ++中一样。

http://msdn.microsoft.com/en-us/library/28k1s2k6.aspx