为什么内存地址会在运行时发生变化
Why do memory address change on runtime
我用 C#.Net 编写了一个应用程序,其中包含一个简单的双变量,该变量在 运行 时间发生变化。我的目标是从另一个程序中读取这个变量。所以我用 ArtMoney 查看了内存以获得内存地址。但是我的变量地址在 运行 时间发生变化。谁能告诉我为什么?
在两次尝试中,地址都更改了两次,然后稳定下来。地址的前两个字节在两次尝试中都发生了相同的变化,但接下来的字节在应用程序的每次启动时都不同。
- 为什么地址在运行时间改变了两次?
- 我如何确定地址的"offset"?
"because it is allowed to"; .NET 不保证内存中的内容,除非您(或者):
- 分配托管内存并固定它
- 分配非托管内存
并且您会注意到,在这两种情况下,在 运行s 之间都没有固定 - 它仅在 之间固定运行.
的持续时间
基本上:找到一种不同的方式在进程之间进行通信。原始内存偏移量查找:此处不起作用。
我用 C#.Net 编写了一个应用程序,其中包含一个简单的双变量,该变量在 运行 时间发生变化。我的目标是从另一个程序中读取这个变量。所以我用 ArtMoney 查看了内存以获得内存地址。但是我的变量地址在 运行 时间发生变化。谁能告诉我为什么?
在两次尝试中,地址都更改了两次,然后稳定下来。地址的前两个字节在两次尝试中都发生了相同的变化,但接下来的字节在应用程序的每次启动时都不同。
- 为什么地址在运行时间改变了两次?
- 我如何确定地址的"offset"?
"because it is allowed to"; .NET 不保证内存中的内容,除非您(或者):
- 分配托管内存并固定它
- 分配非托管内存
并且您会注意到,在这两种情况下,在 运行s 之间都没有固定 - 它仅在 之间固定运行.
的持续时间基本上:找到一种不同的方式在进程之间进行通信。原始内存偏移量查找:此处不起作用。