C#只完成了ReadProcessMemory或WriteProcessMemory请求的一部分

时间:2015-09-09 11:58:36

标签: c#

当我运行我的应用程序时,我收到以下错误:

  

未处理的类型' System.ComponentModel.Win32Exception'   发生在System.Windows.Forms.dll中        附加信息:只完成了ReadProcessMemory或WriteProcessMemory请求的一部分

这是崩溃的代码,在最后一行崩溃:

SHDXOverlay.ChildControls.Add(ctrlCrosshair);
SHDXOverlay.ChildControls.Add(ctrlRadar);
SHDXOverlay.ChildControls.Add(windowMenu);
SHDXOverlay.ChildControls.Add(windowGraphs);
SHDXOverlay.ChildControls.Add(windowSpectators);
SHDXOverlay.ChildControls.Add(windowBots);
SHDXOverlay.ChildControls.Add(cursor);
PrintInfo("> Running overlay");
Application.Run(SHDXOverlay);

1 个答案:

答案 0 :(得分:0)

调用Application.Run()时,叠加层的所有功能将开始执行。随后,它正在调用ReadProcessMemory()。这些调用以字节为单位读取大小,如果您对ReadProcessMemory()的调用无法读取此内存的一部分或全部,则会产生此错误。本质上说,ReadProcessMemory()失败了,您需要调查为什么最可能的罪魁祸首是不正确的指针或偏移量。

在每次调用WINAPI函数后检查Marshal.GetLastWin32Error并逐步执行代码,当您找到确切的行时,可以通过比较在作弊引擎中看到的内容来仔细检查指针/偏移以隔离您的问题。