C#读取指针地址值

C# Read pointer address value

(抱歉我的英语不好)

如何在 C# 中从指针读取值地址?

示例: 我知道我的指针,但值在应用程序启动时发生变化。

1) 开始

(Pointer) 0x0018F36C   =  ( Value) 0x0342AD68

2) 重启

(Pointer) 0x0018F36C  = ( Value Changed ) 0x0342AE20

其实我有一个基地址0x0018F36C 但需要从指针读取值并保存在 long

示例:

long addr_base = 0x0018F36C;
long address;  //Obviously I do not know the Address

现在我需要从 addr_base 读取长值并将值(长)放入地址

例子

addr_base = memory.ReadAddress(addr_base)

有人知道如何读取存储在名为 addr_base 的变量中的地址吗?

如果您有像 0x0018F36C 这样的地址,您可以:

IntPtr ptr = (IntPtr)0x0018F36C;
long longValue = Marshal.ReadInt64(ptr);

如果您需要从一个地址读取另一个地址,还有另一种Marshal方法:

IntPtr ptr = (IntPtr)0x0018F36C;
IntPtr ptr2 = Marshal.ReadIntPtr(ptr);