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