当前位置: 首页 > article >正文

外挂原理之植物大战僵尸

  众所周知在windows或者Linux系统中,进程间的数据是相互独立的,譬如有两个进程A和B,A只能访问操作系统分配给A的内存空间,不能访问操作系统分配给B的内存空间。话句话说A不能修改B的数据,B也不能修改A的数据,想要修改数据只能通过.dll才行得通,外挂的目的只有一个,修改数据,可以通过两种方式,要么直接修改内存数据要么检索函数地址调用函数已达到外挂目的。

  以修改植物大战僵尸金币数量为例,简要说明下外挂原理。

【第一步】打开植物大战僵尸

  

  初始金币是50

  

  【第二步】这里会用到一个工具叫做Cheat Engine。我用的是6.3的版本。他的主要作用是监视进程所用到的内存地址等,函数的地址、数据的地址...

  

  【第三步】打开需要监视的进程,我这里选择植物大战僵尸

  

  【第四步】初次扫描值为50的数据有哪些。输入50,点击新的扫描,这个时候会扫描到有很多数据为50的项,我们不能确定哪一项是金币的数据的内存地址。

  

   【第五步】打开游戏继续玩,当金币的数量发生变化的时候暂停游戏。比如说现在的75。

  

  【第六步】在Cheat Engine中输入75,点击再次扫描。如下图,只有一个数据的是75,现在可以确定0X0896D868这个地址就是金币的变量的首地址。

  

  【第六步】改变金币的值。选择change vakue of selected addresss。

  

  【第七步】改变值输入10000.

  金币的值就改变成了10000。

  这个就是比较简单的外挂。其原理三步走。

  【1】最重要的是找你想修改的数据的内存地址

  【2】编写修改数据的.dll程序

  【3】注入dll。

 下面我们详细的讲讲通过dll注入的方式修改金币的值

  【1】找到金币的内存地址,假设我们找到的是0x12E595F0。

  【第二步】编写改变金币的dll。打开VS2013新建工程。设置工程属性为dll。编写dll代码。生成dll。

  

  假设我们想要把金币的值修改成777。

  

1 _declspec(dllexport) void go()
2 {
3     int*p = (int*)0x12E595F0;
4     *p = 777;
5 }

 

  【第三步】dll注入。使用工具dllinject找到需要注入的进程,选择植物大战僵尸

  

  选择之前生成的dll,执行时加载的函数为go。点击执行。

  金币的值被修改成777

 这就是外挂的原理。简单吧。O(∩_∩)O。

转载于:https://www.cnblogs.com/wuyouxiaocai/p/5797789.html

http://www.lryc.cn/news/2415933.html

相关文章:

  • 深度xp精简版6.2_珍藏多年的精品,老机专用:深度技术WinXP SP2 V5系列
  • Struts2 基础入门
  • 亚马逊分类目录_新版亚马逊分类目录v2.4程序源码官方分享下载
  • 浅显易懂理解端口映射技术
  • 最新RemObjects,您值得拥有
  • 《Windows 核心编程》27章:硬件输入模型和局部输入状态
  • VC 调试技术与异常(错误)处理
  • Asp.net Core WebHost寄宿在Host上
  • 人小鬼大 微软优化工具TweakUI使用感受
  • discuz防灌水机制
  • 职工信息工资管理系统(设计文档+源代码+SQL文件)
  • DjangoBook完整发布了
  • 冷却水的循环方式有哪几种_工业循环冷却水处理知识---系列1
  • man使用
  • 人生哲理
  • 百度历年算法大盘点
  • MSDTC不能启动的几个解决方法
  • QQ连连看6.0 逆向分析
  • 解决mfc71u.dll文件找不到
  • 求索溪新规划题解
  • 灰鸽子病毒——网络神偷之后应用最广的反弹端口***
  • 应用程序正常初始化(0xc015002)失败解决方法
  • 富爸爸大预言
  • 中国金融集成电路(IC)卡规范
  • 微软更新,错误号: 0x80072EE2的解决方法
  • 启动应用程序出现mfc42.dll缺少问题解决
  • 收集的一些好的网址[持续更新]
  • .net core partial view的一些心得
  • 腾讯QQ、淘宝旺旺、微软MSN、谷歌Gtalk 在线客服代码
  • virtual judge 出现连接超时 解决办法