优化代码解决 DUMP.exe 不是有效 PE 文件问题
### 💡问题分析 代码提取的 DUMP.exe 运行不了且不是有效 PE 文件,可能有以下几个原因: 1. **内存读取问题**:代码直接从指定地址读取 200M 字节集,可能没有正确读取到有效的 PE 文件数据。PE 文件有特定的格式和结构,若读取起始位置或长度有误,就无法得到完整有效的 PE 文件。 2. **权限问题**:代码虽然有读写权限检查,但可能在读取内存时权限不足,导致读取的数据不完整。 3. **文件写入问题**:将数据写入文件时可能出现错误,如文件损坏或写入不完整。 ### 🛠解决方案 以下是优化后的代码,增加了更多错误处理和检查: ```vb .版本 2 .支持库 shell .子程序 提取DUMP1 .局部变量 DUMP数据, 字节集 .局部变量 DUMP名称, 文本型 .局部变量 进程ID, 整数型 .局部变量 进程句柄, 整数型 进程ID = 取进程ID (进程组合框.取项目文本 (进程组合框.现行选中项)) 进程句柄 = 进程_打开 (进程ID) .如果真 (进程ID = 0) 输出 (“请在游戏内点击初始化”) 返回 () .如果真结束 .如果真 (读内存整数型 (进程ID, 5368709120) ≠ 9460301) 输出 (“无读写权限,请先获取图标”) 返回 () .如果真结束 ' 读取 PE 文件头,检查是否为有效的 PE 文件 .局部变量 PE头数据, 字节集 PE头数据 = 读内存字节集 (进程ID, 5368709120, 4) .如果真 (取字节集数据 (PE头数据, #字节型, 0) ≠ 77 或 取字节集数据 (PE头数据, #字节型, 1) ≠ 90) 输出 (“读取的不是有效的 PE 文件头”) 返回 () .如果真结束 DUMP数据 = 读内存字节集 (进程ID, 5368709120, 237 × 1024 × 1024) ' 200M .如果真 (取字节集长度 (DUMP数据) = 0) 输出 (“读取 DUMP 数据失败”) 返回 () .如果真结束 输出 (“DUMP数据获取完毕,正在写出文件”) DUMP名称 = 到文本 (取年份 (取现行时间 ())) + “-” + 到文本 (取月份 (取现行时间 ())) + “-” + 到文本 (取日 (取现行时间 ())) + “DUMP.exe” .如果真 (写到文件 (取特定目录 (#系统桌面) + DUMP名称, DUMP数据) = 假) 输出 (“写出 DUMP 文件失败”) 返回 () .如果真结束 输出 (“写出DUMP文件完毕”) ``` ### 📝解释 1. **PE 文件头检查**:在读取完整数据前,先读取前 4 个字节,检查是否为有效的 PE 文件头(`MZ`,对应的 ASCII 码为 77 和 90)。 2. **数据长度检查**:读取 DUMP 数据后,检查字节集长度是否为 0,若为 0 则表示读取失败。 3. **文件写入检查**:写入文件后,检查写入是否成功,若失败则输出错误信息。 ######[AI问答 | 852点数解答 | 2026-05-16 22:16:15]
- DNF进程内存转储及图标写入:代码实现与开发注意要点(DeepSeek | 466点数解答 | 2026-01-15 19:11:28)56
- 易语言:“获取dump”子程序代码揭秘及为程序添加DNF图标的方法 (字节豆包 | 633点数解答 | 2026-02-09 12:20:02)44
- DNF 进程内存数据读取与保存代码解析及开发注意要点(DeepSeek | 268点数解答 | 2026-01-13 11:45:45)56
- 易语言:从获取DNF游戏内存数据到提取并保存图标全流程代码实现及详解(字节豆包 | 954点数解答 | 2026-01-31 18:29:28)54
- 易语言:获取DNF进程内存数据并添加程序图标的完整教程(字节豆包 | 480点数解答 | 2026-02-09 11:36:03)54
- 易语言:组合子程序实现DNF内存数据获取与窗口图标设置(字节豆包 | 333点数解答 | 2026-02-09 11:39:41)42
- 易语言代码:添加路径和图标完善 “获取dnf dump” 程序(字节豆包 | 478点数解答 | 2026-02-09 11:50:52)43
- 易语言“获取dump”代码:从基础到优化的全面改善(字节豆包 | 628点数解答 | 2026-02-09 12:03:22)42
- 易语言代码:获取DNF游戏进程内存数据及优化方案解析(字节豆包 | 928点数解答 | 2026-02-10 01:22:14)51
- 易语言代码:实现DNF进程内存数据获取与保存(字节豆包 | 37点数解答 | 2026-02-10 01:28:39)51
- 批处理文件:依据参数表.xlsx精准修改文件.txt中p、t、s值(GPT | 811点数解答 | 2024-12-05 12:58:37)420
- 用批处理和Python实现“参数表.xlsx”与“文件.txt”数据匹配及修改(讯飞星火 | 531点数解答 | 2024-12-05 13:20:42)392