C#指向其他应用程序的内存

时间:2011-02-15 17:39:36

标签: c# .net unsafe

  

可能重复:
  How to access structure in other program's memory?

您好。 我想访问另一个应用程序内存。 我正在写游戏黑客(别担心,这只适用于单人游戏模式)。 我在游戏的记忆中找到了玩家结构的指针。

我不想使用pInvoked ReadProcessMemory,因为我希望能够读取单个结构的字段。我知道游戏内存中的地址,其中包含玩家结构阵列。

在这种情况下,使用pInvoked ReadProcessMemory不太实用。

如何使用C#的不安全指针将其他进程内存映射为struct? 或者,如果不可能使用直接指针,那么使用readPrcessMemory的方式是什么?

我希望最终能够如此......。

player是某种在内存中表示struct的类。 玩家是某种球员的集合。

foreach(player guy in Players)
{ 
    DrawESP(guy.X, guy.Y, guy.Z);
}

2 个答案:

答案 0 :(得分:4)

你不能简单地从内存中重新编译。

在您自己的应用程序(类/ struct / etc)中创建对象的结构,并使用ReadProcessMemory读取相应的字节,然后以填充结构的方式对这些字节进行解释。

如果你不熟悉以这种方式使用指针,我会礼貌地建议写作训练师不适合你,你需要先做一些阅读。

我建议学习用C ++编写训练器,用“不安全”的代码来思考它会更容易。

答案 1 :(得分:1)

两个选项:

  • ReadProcessMemory
  • 将DLL加载到远程进程中,然后该DLL可以使用不安全的指针直接访问内存。