我想知道如何从头到尾找到应用程序的有效地址,因为我想知道如何记忆编辑应用程序,例如记事本。我是否必须反编译应用程序并查看汇编代码或机器代码。因为我看到人们总是为扫雷和一些 PC 视频游戏等应用程序制作模组。
PS 我将使用编程语言 C# 和 Win32 函数来执行内存编辑。
我想知道如何从头到尾找到应用程序的有效地址,因为我想知道如何记忆编辑应用程序,例如记事本。我是否必须反编译应用程序并查看汇编代码或机器代码。因为我看到人们总是为扫雷和一些 PC 视频游戏等应用程序制作模组。
PS 我将使用编程语言 C# 和 Win32 函数来执行内存编辑。
查找进程的开始和结束地址
Process proc = Process.GetCurrentProcess();
IntPtr startOffset = proc.MainModule.BaseAddress;
IntPtr endOffset = IntPtr.Add(startOffset ,proc.MainModule.ModuleMemorySize);
http://www.ownedcore.com是学习记忆编辑的好资源。
首先,您使用 GetSystemInfo Win32API 函数来获取应用程序可用的最小和最大虚拟地址。然后,您从最小地址开始扫描内存块,并以可用的最大地址结束。但是您跳过(您不扫描它们)所有您无法阅读的块。这是 CodeProject 上的一篇文章,其中显示:https ://www.codeproject.com/articles/716227/csharp-how-to-scan-a-process-memory