如何查找内存编辑进程的应用程序的起始地址?

时间:2011-11-10 21:40:52

标签: c# winapi memory-editing

我想知道如何从头到尾找到应用程序的有效地址,因为我想知道如何内存编辑应用程序,例如记事本。我是否必须反编译应用程序并查看汇编代码或机器代码。因为我看到人们总是为扫雷和一些PC视频游戏等应用程序制作mod。

P.S。我将使用编程语言C#和Win32函数来执行内存编辑。

2 个答案:

答案 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