从内存中读取指针位置的值

本文关键字:位置 指针 读取 内存 | 更新日期: 2023-09-27 18:05:40

我需要从内存位置0到3字节获取值,假设int使用4字节的数据,如果long使用8字节,我想读取0到7字节的长数据,看看它给出了什么值。谁能帮我写c#代码?

问候,波动率指数

从内存中读取指针位置的值

这可能非常危险,如何获得地址以及如何评估它是否有效?不是每个地址都是有效的,尝试从其中的一些地址读取将导致异常。

但是你可以使用Marshal。Read*方法做这个

int intValue = Marshal.ReadInt32(addr);
long longValue = Marshal.ReadInt64(addr);

你还需要捕获AccessViolationException。

你还试图从虚拟地址或物理内存中读取。在c#中,你只能从进程的虚拟地址空间中读取。您必须使用内核模式驱动程序才能直接访问计算机上的物理内存。