`
duoerbasilu
  • 浏览: 1537463 次
文章分类
社区版块
存档分类
最新评论

手把手教你写游戏修改器

 
阅读更多

http://blog.csdn.net/jianxia_wzx/article/details/7795700

转载请注明出处!!!谢谢!!!

在玩游戏的时候,很多人还是喜欢用修改器的(本人一样哈大笑)但是很多网上下的修改器,要么不能用,要么有毒,很不爽,因此还是自己动手丰衣足食吧。下面就以植物大战僵尸为例,一步一步教大家写植物大战僵尸的修改器。

首先大家应该对进程有一定的认识。说下大体思路吧,我们知道一个进程在运行时系统会分配一定的内存供这个进程存储自己的数据,因此我们修改某个进程的数据就应该从这个进程的内存区域去修改,因此首先我们要获得这个进程的内存区域,怎样获取呢?一会说。在得到进程内存之后,我们知道在玩某一关的时候,阳光这个数值是在某一个内存地址上面存储,当阳光值改变也是对这个地址的数据进行操作,因此我们可以这样做,假设开始我们阳光值为x,对这个进程内所有数据进行便利去选择所有存储的值为x的内存地址我们可能会找到很多,然后变化一下阳光值变为y,然后在刚才存储x的地址去寻找所有存储值为y的地址。如果还有很多地址,在变化阳光值进行寻找,这样总有那么一天我们会找到唯一的一个地址哈大笑(一般不会超过四次寻找,所以大家不用怕滴),当然这个地址就是我们存储阳光的地址啦。然后对这个地址进行赋值,随意赋值啦,怎样赋值呢?一会讲。

好了,现在我们大体明白我们要怎么做了。下面具体实现

1、寻找我们的进程。

当然我们进程的名称就是植物大战僵尸.exe啦,注意后面一定要有.exe怎样去寻找这个进程呢?当然是用ToolHelp函数完成啦,先用CreatToolHelp32Snapshot函数创建一个进程快照,然后采用Process32FirstProcess32Next函数一次将每个进程信息读到一个PROCESSENTRY32的结构体里面,这个过程在进程操作查看进程优先级文章里面详细说了,这里就不多说了,但是我们发现里面没有进程的句柄!!!而后面的操作都是以进程句柄来进行操作的,因此我们必须找到这个进程的句柄,找进程句柄采用OpenProcess()函数,这个函数功能就是打开一个进程号为XXX的进程并且返回它的句柄,因此我们只需要用ToolHelp函数找到这个进程的ID,然后传给OpenProcess函数就可以返回我们需要的进程句柄了。具体实现如下:

找进程ID

找打进程ID后寻找进程的句柄、

这样我们就抓住这个进程啦!!!偷笑

2、搜索内存

这个关键的一部分,我们知道我们肯定不止一次的进行查找,然而第一次查找与其他不同,第一次是在进程所有内存空间进行查找,因此时间比较长,后面几次查找的时候只需要在前一步的记录的那些可疑的地址里面查找就行了,因此需要另写一个函数。为了实现这些功能,我们定义几个全局变量//记录植物大战僵尸进程的ID
DWORDtProcessID;
DWORDg_arList[999999];//地址列表
intg_nListCnt=0;//有效地址个数

然后进行操作。

我们知道我们得操作系统是采用分页存储的技术每一页大小是4KB,因此我们每一次查找时应该每次读取进程内存的一页来进行查找。然而从哪里开始呢?Windows98系统预留的是4MB2GB的空间,Windows2000型提供的是64KB2GB,因此在开始搜索的时候应该确定我们操作系统的版本。我们采用GetVersionEx函数进行确定结果放到一个OSVERSIONINFO的结构体里面,具体实现如下:

在第一次查找的时候我们应该一页一页的进行搜索,然后在这一页查找是否有我们查找的值,有的话记录下来,然后查找下一页,以此类推。实现如下:

在第一查找的函数里面不停地调用这个函数就可以啦。如下:

在找到一些可疑的地址后,然后修改数值,进行下一次寻找,知道确定出最后一个地址未知。如下:

3、修改内存

在找到我们要找的地址后,就剩最简单一步啦,就是修改内存,我们只需要使用WriteProcessMemory()即可修改内存。//记录植物大战僵尸进程的ID
DWORDtProcessID;
DWORDg_arList[999999];//地址列表
intg_nListCnt=0;//有效地址个数

为了方便我们查看程序我们可以将找到的地址打印出来

上面就是我们植物大战僵尸修改器的具体过程怎么样,简单吧!!!看看效果吧!!!大笑


分享到:
评论

相关推荐

    手把手教你架构游戏引擎.rar

    本压缩包“手把手教你架构游戏引擎.rar”提供了关于构建游戏引擎的详细教程,特别适合有一定编程基础的学员深入学习。 游戏引擎架构通常包含以下几个关键部分: 1. **图形渲染**:游戏引擎的视觉表现主要依赖于...

    手把手教你用动软动软.Net

    动软.Net代码生成器 是一款为.Net程序员设计的自动代码生成器,也是一个软件项目智能开发平台,它可以生成基于面向对象的思想和三层架构设计的代码,结合了软件开发中经典的思想和设计模式,融入了工厂模式,反射...

    手把手教你用C#打包应用程序

    在这里,你可以设置发布目标、输出路径、部署模式(点击“配置管理器”可选择不同的构建配置,如Debug或Release)以及自定义安装参数。 4. 配置安装程序:在发布设置中,可以选择“创建安装程序”选项。这将使用...

    手把手教你写批处理-批处理的介绍

    4. 游戏作弊:在某些游戏中,通过批处理实现快速操作。 5. 开发和调试:在开发过程中,快速执行构建、测试等步骤。 五、批处理的高级技巧 1. 使用变量:`set var=value`设置变量, `%var%`引用变量。 2. 逻辑操作符...

    手把手教你用Unity3D做打砖块游戏

    在Unity3D中创建一款打砖块游戏是一个很好的学习实践项目,它可以帮助初学者掌握基本的游戏开发流程,包括场景构建、物理系统应用、碰撞检测、玩家交互和游戏逻辑实现等。接下来,我们将深入探讨这个过程中的关键...

    手把手教你如何一个人做个游戏.rar

    Unity的Animation窗口和Animator控制器用于创建和管理游戏对象的动画。Mecanim系统支持骨骼动画,可以导入和编辑来自其他软件(如Maya或Blender)的人物动作。 七、音频管理 Unity支持音效和音乐播放,Audio Source...

    WPE封包制作教材范例《教你玩转手机网游》

    手把手教你 在本教程中,我们将手把手地指导用户如何使用 WPE 封包外挂来修改大宋豪侠游戏数据包。用户可以通过学习本教程,掌握游戏数据包修改技术,并应用于其他游戏中。 数据包截取 在使用 WPE 封包外挂之前,...

    C# SuperSocket 手把手教你入门 傻瓜教程-7(自定义SuperSocket内置的命令行协议)

    SuperSocket是一个轻量级且高度可扩展的网络通信框架,适用于开发各种类型的TCP服务,如聊天应用、游戏服务器或者数据传输服务。通过自定义命令行协议,我们可以更好地管理和解析客户端发送的数据,实现更高效、更...

    WPE教程 很详细 菜鸟也能看懂

    WPE是一款非常实用的网络代理编辑工具,主要用于游戏数据包的抓取和修改,尤其对于初学者来说,它提供了一个相对简单易用的界面。接下来我们将深入探讨该教程中的几个关键知识点。 #### 一、WPE简介 WPE是一种能够...

    CE嗨-从入门到精通辅助教程(入门+进阶+高阶)(价值500元)-2.6G网盘下载.txt

    制作一个简易修改器 CE嗨视频【1.入门教程】5.一些重要的小技巧和理论补充 进阶章 CE嗨视频【2.进阶教程】1.修改汇编代码来实现作弊 CE嗨视频【2.进阶教程】2.不找指针直接使用AOB注入快速修改 CE嗨视频【2....

    Eclipse+Web开发从入门到精通(实例版)

    - **实现**: 使用`java.util.Random`生成随机数,通过循环和条件判断实现游戏逻辑。 - **1.4.3 通过FTP传递文件** - **目的**: 掌握网络编程基础。 - **实现**: 使用`javax.net`中的`FTPClient`类。 **1.5 SWT...

    CE+OD找基址详解

    ### CE+OD找基址详解 #### 知识点一:理解CE与OD的基本概念及其在游戏中的应用 - **CE(Cheat Engine)**:一款内存修改工具...最终目标是帮助读者理解并掌握这一技巧,为后续的游戏修改、调试等工作打下坚实的基础。

    Paint in 3D v1.11.5

    画笔修改器 - 为你的画笔添加修改器,让它们变得活跃起来。它们可随机改变位置、旋转、不透明度、纹理,以及更多! 无缝 UV 绘制 - 正在用复杂的 UV 来绘制复杂的网格?没问题,Paint in 3D 能流畅无缝地在 UV 缝合...

    E3D引擎代码

    E3D引擎代码资源是基于《手把手教你搭建引擎》一书中的内容,这是一份专为游戏开发人员和计算机图形学爱好者准备的学习材料。E3D,全称为"Easy 3D Engine",可能是一个简易但功能强大的3D游戏引擎,旨在简化3D应用...

    Paint in 3D V1.9.2

    画笔修改器 - 为你的画笔添加修改器,让它们变得活跃起来。它们可随机改变位置、旋转、不透明度、纹理,以及更多! ? 无缝UV 绘制 - 正在用复杂的 UV 来绘制复杂的网格?没问题,Paint in 3D 能流畅无缝地在 UV ...

    Paint in 3D V4.1.3

    用 Paint in 3D 绘制所有物体 - 在游戏内和编辑器里都可使用。所有功能已经过深度优化,在WebGL、移动端、VR 以及更多平台用起来都非常好用! 容易使用 - 学习如何使用 Paint in 3D,让众多教程场景来手把手帮你过...

    怎么把桌面移到D盘

    标题中的“怎么把桌面移到D盘”以及描述中的“手把手教你移动桌面到D盘”表明,本主题涉及的是一个Windows操作系统中个性化设置的操作,即如何更改桌面默认存储位置,以便将桌面文件保存在D盘上,以防止系统重装或C...

    我的世界菜单制作器.zip

    需要注意的是,虽然“我的世界菜单制作器”提供了一种方便的定制方式,但不同版本的游戏可能需要不同的配置方法,因此在使用过程中要确保与你的《我的世界》版本兼容。 总的来说,“我的世界菜单制作器”是一个强大...

Global site tag (gtag.js) - Google Analytics