记录一次基于 Qt 的内存数据修改工具开发
近期遇上某些老软件,软件是 C/S 架构,客户端却把服务器 IP 写死了,而且找不到源码和开发者了,故想到用修改内存数据的方式改变服务器 IP,使其在变换网络环境条件后可正常使用。
一、利用 Cheat Engine(CE)找到需要修改的相对地址
1、打开客户端进程,选择 String 类型,输入客户端定死的服务器 IP
2、点击 First Scan 后,把所有找到的值修改成新的服务器 IP
3、客户端按业务流程操作,继续搜索,直到把所有业务流程走完。
将涉及到的地址,其对应值都修改成新的 IP,此处以修改成 192.168.111.128 为例,修改后客户端连接使用正常。
二、基于 QT 编写服务器 IP 自动修改工具
通过 CE 工具修改,虽说能够正常使用,但是对于用户的交互体验极其不友好,对于不熟悉 CE 的人更是如此,所以产生编写自动修改工具的想法。
1、设计简单 UI
放置一个输入框,两个按钮,如下图。
2、编写简易界面交互逻辑
复制代码
3、读取 INI 格式配置文件
为了避免每次启动后都需要重新输入新的 IP,我们使用 QSettings 来读取 INI 文件。
复制代码
4、检测与内存数据修改
复制代码
结语
QT 项目代码已经上传至 gitee
项目链接qtModMem: 修改指定名字进程内存数据的一个QT示例项目
参考资料
ReadProcessMemory function (memoryapi.h) - Win32 apps | Microsoft Docs
ReadProcessMemory如何读字符串-CSDN论坛
给Qt程序添加管理员权限总结(一定有你没见过的方式)_百里杨的博客-CSDN博客
评论