各位我能问个低级问题吗?我易语言在读取进程模块地址时读取到模块基址为DC790000但是在cheatengine中该模块基址为7FF8DC790000?,我也考虑过可能因为游戏是64位,但我用x64读取的模块来读取该模块基址无法运行,就直接出窗口点一下按钮1就卡住(我设置的点击按钮1读取内存)
1条回答 默认 最新
关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
问题分析:您在使用易语言读取进程模块地址时,发现和Cheat Engine 中显示的模块基址不一致。可能是由于不同工具对模块基址的显示格式不同,也可能是因为游戏是64位导致读取错误。您尝试使用x64读取模块基址时出现程序崩溃。 解决方案:您可以尝试以下方法解决问题:- 确认游戏是否为64位:在处理64位游戏时,需要使用对应的读取方式和数据类型。您可以确认游戏的位数,然后选择合适的读取方式。
- 检查数据格式:不同工具对模块基址的显示格式可能有差异,需要根据具体情况进行数据格式转换。比如去掉前缀或补充必要的信息。
- 调试程序:使用调试工具或输出调试信息来查看程序运行过程中的错误信息,帮助定位问题并进行修复。 案例代码(示例):
// 读取模块基址的代码片段 var hProcess, hModule: long; moduleBaseAddr: string; begin // 假设hProcess为进程句柄,hModule为模块句柄 // 读取模块句柄的基址 GetModuleBase(hProcess, hModule, @moduleBaseAddr); // 对模块基址进行转换处理 if Pos('7FF8', moduleBaseAddr) > 0 then Delete(moduleBaseAddr, 1, 4); // 删除前缀'7FF8' // 此处可以根据具体情况添加其他处理逻辑 // 输出处理后的模块基址 MessageBox(0, moduleBaseAddr, 'Module Base Address', 0); end;通过以上方法,您可以尝试解决易语言读取模块基址与Cheat Engine 显示不一致的问题,并确保程序正常运行。希望能帮到您!如果还有其他问题,请继续咨询。
解决 无用评论 打赏 举报