Launch:C++/DX11/ImGui 写的进程内存编辑器
Launch 是个 Windows 进程内存查看/编辑器, DX11 撑窗口, ImGui 画界面。说白了就是极简版 Cheat Engine:给个 PID 附加上去, 表格里填地址, 实时看值, 也能改回去。
写它是想把 Win32 下进程内存这套摸清楚。ReadProcessMemory / WriteProcessMemory 光看文档没感觉, 自己撸一个才踏实, 顺带把 C++ / CMake / ImGui 的桌面流程走一遍。没打算做产品, 就是练手, 能附加进程、能改到游戏血量就够了。
管理员身份启动是硬前提。附加要拿 PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION, 不提权大多数进程直接打不开。界面就一张表, 一行一个地址, 回车加行。地址支持三种写法:
- 绝对地址
0x605FFDA00 - 模块+偏移
th12.exe+0xB0C44, 先查模块基址再加偏移 - 多级指针链
th12.exe+0xB0C44->0x10->0x20, 一级一级 ReadProcessMemory 解出最终地址
指针链照 Cheat Engine 的思路做。游戏里稳定地址基本都藏在指针后面, 写死绝对地址下次开游戏就废了。
技术栈是 C++20, GUI 用 Dear ImGui, 源码直接 vendor 在 include/, 渲染走 DX11 + Win32, CMake 和 VS 两套都能编。中文字体按 msyh → simsun → meiryo 找, 都没有就回退默认, 免得界面全方块。
功能刻意做到最小, 只支持 int 读写, 一次附加一个进程, 内存扫描、更多值类型、指针自动扫描都没做。印象最深的坑是大小写:CMake 里写的 src/GUI 仓库实际是 src/Gui, 大小写敏感的系统死活编不过, 找半天才反应过来。代码一堆能改的地方, 但不打算重写成正经工具了, 留着当 C++ 起步那会儿的样子。