【发布时间】:2019-01-18 17:55:42
【问题描述】:
我正在使用我正在开发的扫描引擎,我正在尝试读取进程的内存。我的代码在下面(有点乱),但由于某种原因,如果我读取处于不同状态的应用程序的内存,或者在它有很多东西加载到内存之后,无论如何我都会得到相同的内存大小。我的入口点地址和长度是否不正确?
如果我使用内存编辑器,我不会得到与此相同的结果。
Process process = Process.GetProcessesByName(processName)[0];
List<Byte[]> moduleMemory = new List<byte[]>();
byte[] temp;
//MessageBox.Show(pm.FileName);
temp = new byte[pm.ModuleMemorySize];
int read;
if (ReadProcessMemory(process.Handle, pm.BaseAddress, temp, temp.Length, out read)) {
moduleMemory.Add(temp);
}
}
//string d = Encoding.Default.GetString(moduleMemory[0]);
MessageBox.Show("Size: " + moduleMemory[0].Length);
【问题讨论】: