植物大战僵尸7_修改器制作

植物大战僵尸7_修改器制作

本教程基于 Qt 框架开发,通过调用 Windows API 对《植物大战僵尸》游戏内存进行读写,实现游戏数据的实时修改与注入。

本项目适合学习游戏修改器原理、Qt 界面编程与内存读写基础。


一、项目文件结构说明

文件名功能说明
widget.h修改器主窗口类声明,变量与槽函数定义
widget.cpp修改器逻辑实现,内存操作、按钮逻辑
widget.uiQt Designer 生成的图形界面布局文件

二、支持的功能一览

功能项描述
阳光修改直接设置任意阳光值并锁定
金币修改设置任意金币数值(内部值为显示值 / 10)
冷却时间清零所有植物卡片冷却时间立即刷新
大嘴花无敌修改特定内存字节实现攻击无效
基础僵尸弱化设置基础僵尸血量为 0,直接消失
铁桶僵尸弱化修改防具僵尸伤害判断逻辑
高坚果增强注入自定义汇编逻辑,改变行为或血量等

三、关键功能详解

1. 修改阳光数值

地址说明:

  • 静态基址:0x006A9EC0

  • 一级偏移:0x768

  • 二级偏移:0x5560

逻辑代码:

WriteProcessMemory(hProcess, (LPVOID)(SunShineOffsetFirstValue + SunShineOffsetSecond), &IntNum, sizeof(DWORD), &dwSize);

功能效果:

  • 设置阳光数值,实时生效

  • 配合复选框可实现持续锁定


2. 修改金币数值

地址说明:

  • 静态基址:0x006A9EC0

  • 一级偏移:0x82C

  • 二级偏移:0x28

注意:

  • 内部金币值为显示金币数 / 10

逻辑代码:

IntNum = QStrnum.toInt() / 10;
WriteProcessMemory(hProcess, (LPVOID)(GoldCoinOffsetFirstValue + GoldCoinOffsetSecond), &IntNum, sizeof(DWORD), &dwSize);

3. 冷却时间清零

原理说明:

  • 每个植物卡槽有一个冷却字段,按编号遍历 14 个卡片位置,依次写入冷却值为 1(单位:帧)

地址说明:

  • 基址:0x006A9EC0 → 0x768 → 0x144

  • 每个植物偏移递增:CDOffsetThird + i * CDAccumulator(即:0x70 + i * 0x50

逻辑代码:

for(int i=0; i<14; i++) {
    WriteProcessMemory(hProcess, (LPVOID)(CDOffsetSecondValue + (CDOffsetThird + CDAccumulator*i)), &IntNum, sizeof(DWORD), &dwSize);
}

4. 大嘴花无敌状态切换

地址: 0x00461551

原理:

  • 修改该地址的字节,使大嘴花攻击后不进入冷却或保持战斗状态

字节值说明:

  • 正常:A0 0F(冷却 400 帧)

  • 无敌:00 00(立即可用)


5. 基础僵尸血量修改

地址: 0x005227BB(偏移 +6)

逻辑说明:

  • 写入值 0x00000000:直接消失

  • 恢复为 0x0000010E:恢复原始血量

代码片段:

DWORD ChangeNum = 0x00000000;
WriteProcessMemory(hProcess, (LPVOID)(0x5227BB + 6), &ChangeNum, sizeof(DWORD), &dwSize);

6. 铁桶僵尸血量调整

地址: 0x00531044

字节替换:

  • 弱化:29 C9

  • 默认:29 C1


7. 高坚果注入汇编逻辑

目标地址: 0x52FCF0

步骤:

  1. 使用 VirtualAllocEx 分配远程空间;

  2. 写入汇编 shellcode;

  3. 修改 0x52FCF0 指令跳转到新代码;

  4. 实现原始功能注入或行为修改。

注入代码示例:

add [esi+40h], -4
add [esi+40h], +4
mov ecx, [esi+40h]
jmp 52fcf7

四、UI 设计与信号槽绑定

控件功能
输入框 LineEdit输入阳光/金币数值
按钮 PushButton写入数据
复选框 CheckBox控制是否持续锁定/修改植物属性
状态标签 QLabel显示是否找到游戏、当前数值
connect(ui->ModifypushButton, SIGNAL(clicked(bool)), this, SLOT(on_ModifypushButton_clicked()));

五、使用建议与注意事项

  • 游戏需先运行,再启动修改器;

  • 每次启动自动检测窗口与 PID,刷新状态。


六、总结

该项目涵盖了 Qt GUI 开发、Windows 进程控制、内存读写、汇编注入等关键知识点。

欢迎基于此项目继续拓展,实现更多个性化功能!

下载链接如下:

通过网盘分享的文件:pvs_modify_3.0.rar
链接: https://pan.baidu.com/s/1AW3r52OoXXailhitOJoVtw?pwd=fbux 提取码: fbux 
--来自百度网盘超级会员v4的分享
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值