相信很多朋友都喜欢玩游戏,那么大多数人都会选择开挂

虽然最近在做一个C#天谕模拟G(类小精灵) 目测账号已被

封要求5000天币解冻 不然等三天、当时差点没吓一跳500

软妹币 知道有很多人都开过小挂挂 但是开的时间久以后免

会萌生自己研发外挂的想法

那么我先简述一下外挂有哪几种、第一种也就是以前比较

主流的即“内存辅助”,这种外挂现在的话 网络游戏很少了

一般应用在单机游戏,该方式的话需要一定的汇编基础,

否则不好找CALL 也需要HOOK、包括代码注入方面知识

第二种是现在最多的一种它安全可靠不需要开发者有特别

牢厚的编程基础,即按键小精灵(模拟辅助)、主要通过后

台识图(OCR / 光学识别)与后台窗口绑定 后台模拟用户一

系列操作的一种外挂、

第三种是很高级的一种了、即TCP/UDP层面的一个外挂

可以理解为网络层的辅助 难度的话高于“内存辅助”大牛玩

的、TCP/UDP层面的外挂使用“封包/截包”技术目前主要

有两方式一SOCKET SPI+,二(API-HOOK + DLL注入),

相对于第一种第二种是最多的,但是这类外挂会涉及到

密码心理学方面的知识,应为需要去“解包”然后在“封包”

属于中间人(第三方)、每个游戏都有自己的加密所以解密

会变得会相当麻烦、当然也有办法从OD反汇编中去找加

密的代码、当然有兴趣的朋友们可以去研究

外挂与网络游戏之间,如同鼠与猫的一样 网络游戏每次

更新堵外挂 外挂又绕过封堵 无限的死循环似乎没有终点、

那么网络游戏公司为什么会打击游戏辅助?如果说为了

“游戏平衡”似乎好像是那么回事 但似乎又不是 那么我谈

谈我的看法吧、

在我看来打击外挂 不如说是外挂动了网络游戏运营商的

金融蛋糕、我举个例子 盛大龙之谷(飞机辅助) 在正常情

况下如果没有很好的装备根本打不过黑龙 弄好装备则需

要大量RMB、如红龙不开挂那压根不敢想

蜗牛九阴真经自动采集挂 那么我怎么没有见到有查杀呢?

因为那些挂虽然出了材料 但是在游戏内部货币交易 那么

我们需要知道一个定律 在任何世界里面你交易的货币一

定有抵押资产才有效 否则就是无效的

而游戏里面是否有抵押资产?原来我还充钱那时候豪气

现在再看我那是愚蠢游戏里面不存在抵押资产 而人们所

见的物品只是虚拟 如果换一种看法它一分不值 它只是一

串代码常量 它背后没有任何可以做抵押的物品 也可说是

精神上的物品 玩游戏是精神消费 所以它又不是愚蠢

但是归根结底 外挂之所以被网络游戏运营提供商打击在于

动了金融蛋糕、至于动了那么才会惊扰他又是另一回事 但

是可以从它成本预算 如果你造成他的损失低于它“找/告你”

的成本,那么你是安全的 因为它不会花这个钱 当然如果超

过预算10~20%我估计他也不会找你麻烦、若再多不敢保证

首先打开CE(Cheat Engine)后点击左上角“小电脑 / 进程列表”

然后在弹出的窗口中选择“PlantsVsZombies.exe”植物大战僵尸

的执行文件,点击打开按钮

在游侠网或这里下载“植物大战僵尸年度中文版”这个挂只支持该

版本 至于其它的基址不一样 但是大家把下面的内容搞懂了 那么

找其他版本的基址会很轻松 因为方法都差不多

http://fenxiang.qq.com/x/0SmMvFZ8cfFOc3CFVprd3~hPIcT5rX133GNxon3MZF9L

搜索阳光的数量,单机游戏还好些说50一般都是

而现在的网络游戏大多在内存中存放的都不是50

而是计算出的值坑爹到了极点、所以只能OD调

不过那些游戏似乎早预料到该情况 所以不是自结

束就是报错、反正让你调不了 当然会有办法解决

输入50的值到“数值:”下的编辑框中,然后选择

“精确数值”点击“新的搜索”按钮后会出现很多结果

在“数值:”下的编辑框中输入“0”点击“再次搜索”

“再次搜索”时指在“新的搜索”结果中搜索

再上图中看到一个值,刚好包含的值等于0与

阳光的值相同,那它到底是不是呢?

选择这个地址点击红箭头或双击 拖动到下方的报表列表框

中 然后我们把鼠标放在数值上面 去修改它的值试试是不是

这块内存地址

在“更改数值”窗口中的“输入新的数值:”下的编辑框内输入

将要修改的数值,举个例子是100 然后点击确定 看看游戏

阳光的值是不是变成100

可以看到阳光与被测试修改的值相等,也就说明这个地址

是阳光值、但是这个地址不是静态的值是一个动态的值

第一次是这个地址 关闭游戏后重新运行后又运行 阳光的

地址又不一致了怎么办?那么就需要去找内存基址(静态)

通过一定地址偏移到阳光的地址

在报表列表框中选择刚才被加入的“阳光”地址右键,

“找出是什么改写了这个地址”你也可以使用“找出是

什么放了这个地址”反正看心情

然后打开游戏随意浪费点阳光、看看类似上图的框框

内会不会出现访问代码的汇编指令包括内存地址、然

后随意选择一个双击或点击“详细信息” 会弹出一个信

息框里面包含很多信息

在上图中有一串红色的代码则表示,刚才搜索的1EA013B8

等于这里的mov [edi+5578], esi 怎么理解这句话

esi是32位来源索引寄存器、我记得好像是 记得不太清了

mov是移动指令,上面这句话说把esi复制给[edi+5578]

而不是把[esi]的值复制给[edi+5578]这是有很大区别的

所以说不需要看esi的值,只需要找edi因为[edi+5578]的值

等于1EA013B8

在“数值:”下的编辑框中输入“1EA013B8”且勾选上“十六进制”点

击“新的搜索”会出现一大堆地址,怎么选择呢?把第1~5个选择

并移动到下方的报表列表框内 观察那个地址的值没有被改变 因

为有些时候那个地址内恰好包含被搜索的值 但是过一会会自己

修改 所以需要观察一下但是不可以修改它的值 谁知道会出现什

么问题 好的观察前五个中第五个不会发生修改 那么它相对应其

他4个地址是伪静态的把其他4个不用的地址全部删除掉、

右键刚才被筛选出的地址,选择“找出是什么访问了这个地址”

然后在候选列表里面随意的选择一个双击或点击“详细信息”

查看它的汇编代码,然后再上图中看到又出现了一串红色

的汇编代码mov edi,[esi+868],怎么理解呢?其实与上面

的大同小异,只是两者顺序不一样了而已

edi等于[esi+868]的值而不是edi等于esi+868 但是不需要去

看edi的值,先找要去找esi的值是多少 但是这里的esi与上

面的esi不一样 它是一个寄存器在不同的代码段所产生的值

不一定是一致的因为作用域不一致 而esi等于0264B0A8

那么则需要在搜索找包含0264B0A8的地址 (额,但是似乎

有些 太多了找了那么多层还在找真的好蛋痛、呵呵 但其实

这是很少的那种了呢,毕竟不是专业的没那恒心)

在“数值:”下的编辑框内输入“0264B0A8”勾选上“十六进制”

点击“再次搜索”然后又出现一大堆“地址”但是突然出现一些

“绿色”的地址,这些地址就是“基址”即静态不变的地址 好一

下出现四个 每个值都一样 随意选择一个地址记录下来

表达式:阳光=[[[7794F8]+868]+5578] // 二级偏移

点击“手动加入地址”按钮,然后勾选上“指针”然后

把找到“基址”输入进去 点击Add Offset /添加偏移

填写上相应的地址偏移 然后看看结果与游戏中的

阳光数量是否相同,OK一致 那么下面有请C#了

当点击修改阳光按钮被点击后,寻找窗口(FindWindow)“植物大战僵尸”

窗口句柄 在通过GetWindowThreadProcessID函数(获取与窗口相关联

的进程标识),因为这个是内存挂所以需要通过OpenProcess(打开进程)

为C#分配一个访问游戏的有效句柄、下面则很简单了

ReadProcessMemory(读进程内存)怎么去读,根据上面偏移去读去最后

再把新的“阳光”值写入游戏内存,然后切换到游戏看看是否修改成功

GameModifyExample: http://pan.baidu.com/s/1dDnWRYD

上面是这个游戏修改器的示例源代码,当然也希望你看了本文有所收获

C# 从零开始编写一个修改“植物大战僵尸”阳光的内存辅助相关推荐

  1. ce修改植物大战僵尸阳光

    ce修改植物大战僵尸阳光 准备: CE修改器 植物大战僵尸游戏 易语言 选择进程,最重要的是找到阳光的基址 阳光数量为50 首次扫描和再次扫描 找到阳光的动态地址 找出是什么改写了这个地址,并双击 偏 ...

  2. C语言+CE修改植物大战僵尸阳光

    目录 1. CE使用 2. C语言代码 3. 效果 1. CE使用 思路,通过CE找到阳光的静态基址和偏移值,也就是基址+偏移值 = 阳光数目的地址 1.打开植物大战僵尸和CE 2. 打开植物大战僵尸 ...

  3. ce逆向修改——植物大战僵尸针对“阳光值”

    ce逆向修改--植物大战僵尸 一.实验目的 为熟悉CE的使用和对软件逆向分析有进一步的了解. 二.实验设备 Cheat Engine 6.8.植物大战僵尸 三.实验内容 1.针对"阳光值&q ...

  4. CE实战:修改植物大战僵尸中阳光数值

    CE实战:修改植物大战僵尸中阳光数值 游戏版本:植物大战僵尸中文版( PlantsVsZombies ) Cheat Engine 版本:Cheat Engine 7.0 一.打开游戏 二.打开CE并 ...

  5. CE修改植物大战僵尸-天上无限掉落阳光(小宇特详解)

    CE修改植物大战僵尸-天上无限掉落阳光 里是CE修改植物大战僵尸的第三个博客,其他的操作请看我之前的博客. 天上无限掉落阳光. 这里说明一下版本: CE:CE6.8 植物大战僵尸版本:植物大战僵尸95 ...

  6. 学习逆向知识之用于游戏外挂的实现.第二讲,快速寻找植物大战僵尸阳光基址.以及动态基址跟静态基址的区别...

    通过游戏外挂,学习逆向技术之快速寻找植物大战僵尸阳光基址.以及动态基址跟静态基址的区别 一丶静态基址. 动态基址. 基址的区别 通过上一讲超级马里奥的游戏外挂技术制作.我们学习到了静态基址.以及观看内 ...

  7. cheat engin修改植物大战僵尸游戏

                 cheat engin修改植物大战僵尸游戏 修改阳光 思路:首先载入进程,如图黑圈勾画处 然后将初始阳光写入数值处并搜索,如下图 此时会出现许多地址,我们无法确定阳光的所在地 ...

  8. 植物大战僵尸阳光的无限掉落以及掉落冷却基地址寻找详细步骤~包含排除不符合条件的地址的讲解,以及如何观察地址情况等

    植物大战僵尸阳光的无限掉落以及掉落冷却基地址寻找 阳光的无限掉落冷却时间地址以及基地址寻找 (1)首先我们在第一个阳光掉落后,扫描未知的初始值 (2)阳光掉落后,此时掉落阳光的冷却倒计时一直在减少,所 ...

  9. 从零开始编写一个vue插件

    title: 从零开始编写一个vue插件 toc: true date: 2018-12-17 10:54:29 categories: Web tags: vue mathjax 写毕设的时候需要一 ...

  10. 从零开始编写一个上位机(串口助手)QT Creator + Python

    提示:本博客作为学习笔记,有错误的地方希望指正,此文可能会比较长,作为学习笔记的积累,希望对来着有帮助.   绪论:笔者这里使用的是QTCreator和Python来实现一个简单的串口上位机的开发的简 ...

最新文章

  1. Haproxy+Heartbeat 高可用集群方案操作记录
  2. php接收流文件,PHP传输文件流及文件流的保存
  3. 运维中心建设--服务台建设一期
  4. yii框架phpexcel
  5. 使用HtmlAgilityPack抓取网页数据
  6. python各种语言间时间的转化
  7. 行到水穷处,坐看云起时-我的2007!
  8. SQL SERVER 数据类型详解[zt]
  9. jmeter系列六(processor)
  10. python 中文乱码问题深入分析
  11. windows xp 虚拟机卡顿问题查找
  12. mac的win10蓝牙鼠标问题
  13. 游戏开发中的贝塞尔曲线
  14. Windows平台Qt添加OpenCV模块
  15. 鸽哒im即时通讯源码
  16. 华为SNS交换机(OEM博科FC交换机)configupload无法使用ftp协议处理方法
  17. Java项目:SSM汽车维修管理系统源码
  18. Calendar计算两个日期之间的天数和周数
  19. 04-面向对象之:封装,多态
  20. mac系统python配置

热门文章

  1. gnu assembler最新官方手册和.macro介绍
  2. Virtual Box手动激活OEM版Win7
  3. 数据洞察医药电商,解析医药电商行业现状及发展趋势
  4. RuntimeWarning: invalid value encountered in arccos
  5. 推荐几款免费的MacOS/MacBook pro/MacBook air读取NTFS格式磁盘软件(完全免费)
  6. 1.交易开拓者-基础入门知识介绍
  7. centos 官网下载
  8. 画出属于你的最漂亮的数字时序图—WaveDrom
  9. windows下删除文件:提示无法删除文件,无法读源文件或磁盘
  10. 红鸟网络:棋牌游戏开发运营,细分领域是关键