C语言+CE修改植物大战僵尸阳光
目录
- 1. CE使用
- 2. C语言代码
- 3. 效果
1. CE使用
思路,通过CE找到阳光的静态基址和偏移值,也就是基址+偏移值 = 阳光数目的地址
1、打开植物大战僵尸和CE
2、 打开植物大战僵尸进程
3、开始游戏
4、 在CE中输入阳光数,点击新的搜索
6、回到游戏,改变阳光的数目,然后再次搜索,最终看到只有一个数据
7、右击->找出是什么访问了这个地址
8、双击第二个查看详细信息,获取偏移值和地址,复制地址指针数值
9、回到搜索界面,以16进制,点击新的搜索搜索复制的地址
10、这里找到第一个不是00的地址,我在网上看到说00开头的是操作系统的一些操作,这里我也不太清除。找到后右键,找出是什么访问了这个地址。
11、 点击第一个查看详细信息,记住红色地方的偏移值,同样复制
12、 主页面搜索该地址,找到绿色的地址,就是静态地址了
双击,下方会出现绿色的静态地址的信息
13、验证上面步骤圈出的红色的是第几次偏移,然后使用c语言代码实现
14、打开VS2019, 点击工具->Spy++(+)->点击搜索,把红色的那部分用鼠标拖动到植物大战僵尸的窗口上,获取窗口名字和窗口类型,这一步没有VS的话到网上下载一个也行。
2. C语言代码
1、初始化
//初始化
void init() {//植物大战僵尸外挂//找出植物大战僵尸的窗口句柄,唯一标识//查找窗口,参数1:窗口类型 参数2:窗口名字hGameWnd = FindWindow(L"MainWindow", L"Plants vs. Zombies");//如果窗口句柄是空,就是说没有运行程序if (hGameWnd == NULL) {printf("你没有运行该游戏\n");exit(0);}//根据窗口获取PID(ProcessID),进程id,也就是我们在ce中选择进程那一步//参数1:窗口句柄,参数2:要存储的PID的地址GetWindowThreadProcessId(hGameWnd, &dwPID);if (dwPID == 0) {printf("获取PID失败\n");exit(0);}//根据PID获取进程句柄,有了进程PID,我们就可以操作植物大战僵尸了hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID);if (hProcess == NULL) {printf("获取进程句柄失败\n");exit(0);}
};
2、修改阳光
//修改阳光
void modifySunshine() {//要修改的数据地址unsigned long baseAddress = 0x00755EAC;//读出来的数据存到其中unsigned long baseAddressValue = 0;//实际读了多大unsigned long dwSize = 0;//读取进程的内存,这一步将静态地址中的数据读到baseAddressValue中if (ReadProcessMemory(hProcess, (void*)baseAddress, &baseAddressValue, sizeof(unsigned long), &dwSize) == FALSE) {printf("读取静态地址失败\n");return;}//一级偏移,这一步是我们刚刚通过CE得到的unsigned long sunShineOffsetFirst = 0x868;unsigned long sunshineOffsetFirstValue = 0;//读取进程的内存//这一步参数2是要操作的地址,参数三是要把该地址的数据读到sunshineOffsetFirstValue中//也就是这一步把第一次偏移地址的值读到sunshineOffsetFirstValue中if (ReadProcessMemory(hProcess, (void*)(baseAddressValue + sunShineOffsetFirst), &sunshineOffsetFirstValue, sizeof(unsigned long), &dwSize) == FALSE) {printf("一级偏移获取失败\n");return;}//二级偏移,也是我们根据CE获取的,unsigned long sunshineOffsetSecond = 0x5578;unsigned long sunshine = 0;//读取进程的内存//这一步我们操作的地址是二次偏移后的地址,也就是阳光的地址if (ReadProcessMemory(hProcess, (void*)(sunshineOffsetFirstValue + sunshineOffsetSecond), &sunshine, sizeof(unsigned long), &dwSize) == FALSE) {printf("一级偏移获取失败\n");return;}printf("当前阳光值=%d,", sunshine);printf("请输入新的阳光值:");scanf("%d", &sunshine);//使用新的阳光值写进内存//修改阳光值if (WriteProcessMemory(hProcess, (void*)(sunshineOffsetFirstValue + sunshineOffsetSecond), &sunshine, sizeof(unsigned long), &dwSize) == FALSE) {printf("修改失败\n");return;}printf("已修改\n");
}
一级二级偏移怎么确定的:
上面就是代码了,在c语言编译器中创建一个类,直接复制粘贴,然后填上自己的地址就可以用了。而且最终操作的是静态地址,就算关闭植物大战僵尸再打开也可以用。、
3. 效果
最后,其实拿到了内存地址,我们还可以修改僵尸冷却时间、自动收集阳光…自动收集阳光需要多线程操作,并且搜索的过程有点复杂,而且我的VS2019使用多线程有问题,所以这个功能以后再弄。
如有错误,欢迎指出
C语言+CE修改植物大战僵尸阳光相关推荐
- ce修改植物大战僵尸阳光
ce修改植物大战僵尸阳光 准备: CE修改器 植物大战僵尸游戏 易语言 选择进程,最重要的是找到阳光的基址 阳光数量为50 首次扫描和再次扫描 找到阳光的动态地址 找出是什么改写了这个地址,并双击 偏 ...
- CE修改植物大战僵尸-天上无限掉落阳光(小宇特详解)
CE修改植物大战僵尸-天上无限掉落阳光 里是CE修改植物大战僵尸的第三个博客,其他的操作请看我之前的博客. 天上无限掉落阳光. 这里说明一下版本: CE:CE6.8 植物大战僵尸版本:植物大战僵尸95 ...
- CE修改植物大战僵尸-关卡基址(小宇特详解)
CE修改植物大战僵尸-关卡基址 这里是CE修改植物大战僵尸的第二个博客,其他的操作请看我之前的博客. 植物大战僵尸的关卡基址寻找. 这里说明一下版本: CE:CE7.4 植物大战僵尸版本:植物大战僵尸 ...
- CE修改植物大战僵尸豌豆射手的射速
首先我们要找到吐出豆豆的地址.当一个豌豆射手吐出一个豆豆后,豆豆距离僵尸的距离会逐渐减少.这个就是我们ce扫描时的突破口.由于豆豆的速度比较快我们扫描起来不方便,这里改变游戏的速度,方便我们扫描.我们 ...
- ce逆向修改——植物大战僵尸针对“阳光值”
ce逆向修改--植物大战僵尸 一.实验目的 为熟悉CE的使用和对软件逆向分析有进一步的了解. 二.实验设备 Cheat Engine 6.8.植物大战僵尸 三.实验内容 1.针对"阳光值&q ...
- CE实战:修改植物大战僵尸中阳光数值
CE实战:修改植物大战僵尸中阳光数值 游戏版本:植物大战僵尸中文版( PlantsVsZombies ) Cheat Engine 版本:Cheat Engine 7.0 一.打开游戏 二.打开CE并 ...
- [re入门]ce对植物大战僵尸的修改
CE对植物大战僵尸的修改 1.对阳光的修改 思路:通过种植物来改变阳光的数值,ce中使用精确数值搜索即可,如下图 植物偏移地址的寻找(不需要每次都搜阳光地址,直接修改即可) 上面的地址点右键,什么访问 ...
- 学习逆向知识之用于游戏外挂的实现.第二讲,快速寻找植物大战僵尸阳光基址.以及动态基址跟静态基址的区别...
通过游戏外挂,学习逆向技术之快速寻找植物大战僵尸阳光基址.以及动态基址跟静态基址的区别 一丶静态基址. 动态基址. 基址的区别 通过上一讲超级马里奥的游戏外挂技术制作.我们学习到了静态基址.以及观看内 ...
- cheat engin修改植物大战僵尸游戏
cheat engin修改植物大战僵尸游戏 修改阳光 思路:首先载入进程,如图黑圈勾画处 然后将初始阳光写入数值处并搜索,如下图 此时会出现许多地址,我们无法确定阳光的所在地 ...
最新文章
- docker挂载NVIDIA显卡
- WCF获取客户端IP和端口
- 【正一专栏】梅西终老巴萨可被裁判吹掉了已进之球
- Java使用String.format()实现补零
- 【Zabbix】邮件接收 Problem 通知
- h5 canvas基本知识
- Kali Linux 秘籍 第七章 权限提升
- linux下shell程序(一)
- 从字符串或16进制数得到UIColor
- redis scala编程之创建连接
- 概率论与数据统计在分类预测中的原理介绍(信息增益、交叉熵等)
- Nuke对图片添加Alpha通道
- 在matlab编辑大于号,教你怎么用MathType编辑大于或小于符号
- 视频与编解码的技术邂逅,碰撞出的高清罗曼史
- 基于Android+Springboot+Mybatis+Mysql的个人生活APP设计 说明书+项目源码
- cad断点快捷键_入门CAD必备,如何有效记住CAD快捷键
- php的坑,PHP中的这容易被踩的坑,新人必看
- 从头开始 windows 10 安装awscli,aws sam
- fiddle android
- 测试面试挫败_清晰度,初级工程师,要求和挫败感