自己动手制作植物大战僵尸简单修改器

  • 获取植物大战僵尸进程
  • 改变阳光数
  • 改变金币数
  • CD循环清零
  • 运行结果

获取植物大战僵尸进程

我用的是植物大战僵尸汉化第二版,基址是0x006A9EC0
编译器是VC++6.0
(注:未经说明且不是函数定义的代码添加于按钮处)
声明基址

const int baseaddr = 0x006A9EC0;

首先是获取植物大战僵尸进程

 PROCESSENTRY32 pe32;pe32.dwSize = sizeof(pe32);HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);BOOL have_more = ::Process32First(hProcessSnap,&pe32);int processid = -1;while(have_more){if(!_tcscmp(pe32.szExeFile,_T("PlantsVsZombies.exe"))){processid = pe32.th32ProcessID;break;}have_more = ::Process32Next(hProcessSnap,&pe32);}if(processid == -1){AfxMessageBox("找不到游戏进程");ExitThread(-1);}CloseHandle(hProcessSnap);HANDLE hprocess = ::OpenProcess(PROCESS_ALL_ACCESS,FALSE,processid);

hprocess就是植物大战僵尸进程了

改变阳光数

接着就要改变阳光数了,阳光地址是0x006A9EC0 + 0x786 + 0x5560
(即0x006A9EC0的值加上0x786后作为地址,取值加0x5560为阳光地址,之后的不另做解释)

 CString ssun;DWORD sun = 0;m_edit1.GetWindowText(ssun);//获取增加阳光数int addr;//改变阳光数::ReadProcessMemory(hprocess,(LPVOID)(baseaddr),&addr,4,0);::ReadProcessMemory(hprocess,(LPVOID)(addr+0x768),&addr,4,0);::ReadProcessMemory(hprocess,(LPVOID)(addr+0x5560),&sun,4,0);sun += atoi(ssun);::WriteProcessMemory(hprocess,(LPVOID)(addr+0x5560),&sun,4,0);

改变金币数

再其次是改变金币数,金币数地址是0x006A9EC0 + 0x82c+ 0x28
(注:实际金币数为该地址的值乘上10后的结果)

 CString smoney;DWORD money = 0;m_edit2.GetWindowText(smoney);//改变金币数::ReadProcessMemory(hprocess,(LPVOID)(baseaddr),&addr,4,0);::ReadProcessMemory(hprocess,(LPVOID)(addr+0x82c),&addr,4,0);::ReadProcessMemory(hprocess,(LPVOID)(addr+0x28),&money,4,0);money += atoi(smoney)/10;::WriteProcessMemory(hprocess,(LPVOID)(addr+0x28),&money,4,0);

CD循环清零

再接着是CD循环清零,每个格子CD地址0x006A9EC0 + 0x768+ 0x144 +(0x70+0x50i) (0<=i<10)
(注:(0x70+0x50
i)表示括号内为直接运算即可)
先在构造函数处添加如下代码

hthread = INVALID_HANDLE_VALUE;

再在按钮事件添加如下代码

//判断是否启动/终止CD循环清零if(m_check1.GetCheck() == 1 && hthread == INVALID_HANDLE_VALUE){hthread = CreateThread(NULL,0,hackthread,&hprocess,0,NULL);}else if(m_check1.GetCheck() != 1 && hthread != INVALID_HANDLE_VALUE){TerminateThread(hthread,0);hthread = INVALID_HANDLE_VALUE;}
DWORD _stdcall hackthread(LPVOID lpparam)
{const int baseaddr = 0x006A9EC0;HANDLE hprocess = *((HANDLE*)lpparam);int value = 1;int addr;while(true){ReadProcessMemory(hprocess,(LPVOID)(baseaddr),&addr,4,0);ReadProcessMemory(hprocess,(LPVOID)(addr+0x768),&addr,4,0);ReadProcessMemory(hprocess,(LPCVOID)(addr+0x144),&addr,4,0);for(int i = 0;i < 10;i++)//利用循环每次加50,循环10次实现10个方框无冷却{WriteProcessMemory(hprocess,(LPVOID)(addr+0x70+(0x50)*i),&value,4,0);}}return 0;
}

运行结果

自己动手制作植物大战僵尸简单修改器相关推荐

  1. 自己动手制作植物大战僵尸简单修改器(2)

    自己动手制作植物大战僵尸简单修改器2 地上物品自动拾取 地上物品自动拾取 上次的内容自己动手制作植物大战僵尸简单修改器 地上物品的地址是 0x006A9EC0 + 0x768 + 0xe4 + 0xd ...

  2. 自己动手制作植物大战僵尸简单修改器(3)

    自己动手制作植物大战僵尸简单修改器3 目的 过程 找到阳光地址 获取修改阳光的指令 找到自动汇编窗口 找到代码注入 改变阳光增量 结果 目的 这一篇并不是制作,改变每一次捡起阳光时阳光增加量. 过程 ...

  3. 植物大战僵尸中文版修改器python实现

    #阳光edx+5560 import win32gui import win32process import win32api,ctypes import tkinter as tk main=tk. ...

  4. 植物大战僵尸中文版修改器源码

    很简单一个辅助,关键是游戏数据的分析,实现了两个功能,无限阳光和无冷却.特别注意的一下,如果用VS2008编译的话,调试的时候是正常的,但编译后功能就会失效,这是因为OpenProcess权限的问题, ...

  5. 用Java实现植物大战僵尸的修改(续)

    用Java实现植物大战僵尸的修改(续) 之前已经使用HxD Hex Editor工具成功修改游戏存档, 具体步骤请参考:https://blog.csdn.net/weixin_50669669/ar ...

  6. Qt植物大战僵尸实现修改阳光和无冷却

    Qt植物大战僵尸实现修改阳光和无冷却 网上关于qt修改植物大战僵尸的,尤其是开头获取进程句柄和窗口句柄,代码和博客方面会模糊一些,今天写个简洁易懂的,本人也是菜鸟刚学qt快两个月,有疑问在下面我一定回 ...

  7. [re入门]ce对植物大战僵尸的修改

    CE对植物大战僵尸的修改 1.对阳光的修改 思路:通过种植物来改变阳光的数值,ce中使用精确数值搜索即可,如下图 植物偏移地址的寻找(不需要每次都搜阳光地址,直接修改即可) 上面的地址点右键,什么访问 ...

  8. MFC简单应用,制作一个LOL地图修改器。

    声明 1.高手请绕道,这边文章主要描述目录文件操作 2.MFC我从学校出来后就没用过了,做这个东西是因为我弟说要个地图修改器,然后我看了下不难,所以就花了点时间,一边查一边做的东西. 可能有些API调 ...

  9. 【Python windows11修改器 】——制作一个简易的修改器,修改windwos11右键和一些小功能

    快五一了,在这里祝大家五一快乐.顺便供上一块免费且好用的windows11修改器 点个赞留个关注吧!!! 现在应该大部分人都使用win11系统吧,不用也要强行给你更新到win11,win11其实挺好用 ...

  10. 植物大战僵尸阳光修改之美

    0x00: 使用工具  Cheat Engine 5.6.1 将要修改游戏  PlantsVsZombies.exe - 植物大战僵尸 修改器开发环境  MingW and gcc 注: VC等IDE ...

最新文章

  1. C# 操作Excel
  2. u-boot启动过程
  3. Microbiome:地球上有多大比例的原核生物已经被测序了基因组?
  4. (IT/互联网行业)你给自己当前的职位拼几分?(评分标准,个人看法,勿喷~)...
  5. ajax asp后台获取不到post数据,jQuery AJAX调用将数据发布到ASP.Net页面(不是Get但POST)...
  6. 项目--教师日常办公平台中的活动图
  7. 算法设计与分析——贪心算法——最优装载问题
  8. 依赖反转原理,IoC容器和依赖注入:第3部分
  9. 程序员输入法_搜狗输入法高级玩法:如何1秒录入30000字
  10. 达摩院 2020 预测:感知智能的“天花板”和认知智能的“野望”
  11. 基于vue-cli3+typescript+element-ui搭建起来的后端管理平台框架(骨架)
  12. 平面设计师okr_设计团队的KPI/OKR如何制定?
  13. 学术论文写作方法和技巧
  14. uniapp解决H5唤醒APP
  15. 新装服务器、虚拟机应该做什么
  16. 大学生求职的互联网“围城”:被神化的“大厂梦”
  17. 2019-2020 10th BSUIR Open Programming Championship. Semifinal 补题
  18. 华为云CDN是怎么为你的下载加速保驾护航
  19. 在Flash MX中实现自由拖动图片和改变图片
  20. 企业知识分享系统的设计与实现

热门文章

  1. 【Redis核心原理和应用实践】应用 1:千帆竞发 —— 分布式锁
  2. 附件2-2保密承诺书.docx
  3. BlueCoat SG CPU高问题
  4. WordPiece是如何基于词表对文本进行切分的
  5. 各种主流浏览器内核引擎的对比分析
  6. java做微信支付notify_url异步通知服务端的写法
  7. stm32上云实战篇
  8. vim 使用系统粘贴板复制粘贴
  9. 如何清理废弃pv和其对应的文件夹
  10. 两个VB程序之交换数据的DDE工程