指向其他应用程序的C#指针';记忆

指向其他应用程序的C#指针';记忆,c#,.net,unsafe,C#,.net,Unsafe,可能重复: 你好。 我想访问另一个应用程序内存。 我正在写游戏骇客(别担心,它只适用于单人模式)。 我在游戏的记忆中找到了指向玩家结构的指针 我不想使用pInvoked ReadProcessMemory,因为我希望能够读取单个结构的字段。我知道游戏内存中的地址是玩家结构的数组 在这种情况下,使用pInvoked ReadProcessMemory不是很实用 如何使用C#的不安全指针将其他进程内存映射为结构? 或者如果不可能使用直接指针,那么使用readPrcessMemory的方法是什么 我

可能重复:

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

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

在这种情况下,使用pInvoked ReadProcessMemory不是很实用

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

我希望最终能够做到这样的事情

player是一种表示内存中结构的类。 玩家是玩家的某种集合

foreach(player guy in Players)
{ 
    DrawESP(guy.X, guy.Y, guy.Z);
}
两种选择:

  • 读处理存储器
  • 将DLL加载到远程进程中,该DLL可以使用不安全的指针直接访问内存
两个选项:

  • 读处理存储器
  • 将DLL加载到远程进程中,该DLL可以使用不安全的指针直接访问内存

    • 你不能像那样简单地从内存中重新编译

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

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


      我建议学习用C++编写培训器,这样用“不安全”代码来思考是非常容易的。

      不能简单地像这样重新编译内存。

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

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



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

      你已经问过这个问题了。我们已经(详细地)回答了。你为什么又问?仅仅因为你不喜欢你已经得到的答案并不意味着它是不正确的。您必须使用ReadProcessMemory。请接受前面问题中的一个答案,并停止重新发布。您已提出此问题()。我们已经(详细地)回答了。你为什么又问?仅仅因为你不喜欢你已经得到的答案并不意味着它是不正确的。您必须使用ReadProcessMemory。请接受前面问题中的一个答案,并停止重新发布。您没有阅读我的帖子。我非常了解如何使用ReadProcessMemory。我已经为很多游戏制作了很多训练器(Mw2,黑色行动,战场BC2),但是逐项阅读18个结构会让我的ESP攻击速度非常慢。这就是为什么我想用指针来做。是的,我做了。你要求的是不可能的,所以我想礼貌地把你引向实际的解决方案。你不能“神奇地”将内存映射到C#对象,它需要你从字节(即工作)中解释它[对于后代来说,这篇文章处理的是“你没有读我的文章”,而不是以后的编辑]@Hooch你可以计算特定字段的偏移量,并通过ReadProcessMemory读取它。“但是逐值读取18个结构会使我的ESP攻击速度非常慢。这就是为什么我想用指针来做它。“你知道指针是什么吗?指针只是内存中的一个位置。它不会‘做’任何事情,也不会使任何事情更快。@Andrey谢谢你。你能告诉我怎么做吗?你没有读过我的帖子。我非常清楚如何使用ReadProcessMemory。我为许多游戏制作了许多训练器(Mw2,黑色行动,战场BC2)但是逐值读取18个结构会让我的ESP破解速度非常慢。这就是为什么我想通过指针来完成。是的,我做了。你在要求不可能的事情,所以我试图礼貌地将你重定向到实际的解决方案。你不能“神奇地”将内存映射到C#对象,它需要你从字节解释它(即工作)[对于后人来说,这篇文章是关于“你没有读我的文章”,而不是后来的编辑]@Hooch你可以计算特定字段的偏移量,然后通过ReadProcessMemory读取它。”但是逐值读取18个结构会使我的ESP攻击非常慢。这就是为什么我想通过指针进行操作。"你知道指针是什么吗?指针只是内存中的一个位置。它不会“做”任何事情,也不会使任何事情更快。@Andrey谢谢你。你能告诉我怎么做吗?好的。那还不错。我是说第二个选项。我能将C#dll注入非托管进程吗?如果可能的话,我怎样才能与那个dll通信?@Hooch:是的,你可以加入JET管理DLL。以前,当每个进程只能使用一个版本的.NET时,建议不要使用它,但是对于.NET 4,多个版本可以并排运行,所以这不应该是一个问题。对于与DLL的通信,您有所有常见的IPC嫌疑:套接字、共享内存、管道、内核事件、邮件槽、文件等。您能给出吗我链接到某种教程,在那里我可以学习如何做到这一点?@Hooch:好的。这还不错。我是说第二个选项。我可以将C#dll注入非托管进程吗?如果可能,我如何与该dll通信?@Hooch:是的,你可以注入托管dll。以前,当每个进程只能使用一个版本的.NET时,建议不要使用它进程,但在.NET 4中,多个版本可以并行运行,因此这不应该是一个问题。为了与DLL通信,您有所有常见的IPC疑点:套接字、共享内存、管道、内核事件、邮件槽、文件等。您能给我一个到某种教程的链接,在那里我可以学习如何做到这一点吗?@Hooch: