通过向游戏中注入一段特殊的汇编代码,实现自动获取动态地址,省略找基址的麻烦。该方法适用于游戏基址层数过多无法直接获取到基址,游戏根本无法找到基址。

1.打开CE工具并附加游戏进程,首先通过遍历的方式找到阳光的动态地址,然后在地址栏上右键选择找出是什么改写了这个地址如下所示我们选择mov eax,[esi+5560]这条汇编代码。

2.上图可以看到有两条汇编指令,而前面的计数器一直在增加,说明有时钟一直在访问这个地址,我们以第2条汇编指令为例,点击反汇编当前地址在XOR指令上按下F5下断点,其中mov eax,[esi+5560]则表示将当前阳光数量赋值给EAX寄存器,我们可以看到右侧寄存器窗口eax=32,其中的32正好就是阳光的十六进制表示形式,注意mov eax,[esi+5560]这条指令,观察该指令在注入前与注入后会有什么变化?

3.直接点击工具列表-> 选择自动汇编 ->模版->代码注入-> 确定按钮,如下图所示:

4.我们需要在mov eax,[esi+00005560]这条汇编指令执行之前获取到里面的阳光数据,此时可以在originalcode之前写入以下汇编代码,其中push eax,pop eax分别是压栈与出栈,因为我们要使用EAX寄存器暂存数据,此时必须要将原始的EAX寄存器里面的内容进行保存,在代码执行完毕以后必须通过POP指令归位,否则会导致程序异常或堆栈失衡,mov eax,[esi+5560]则表示将[esi+5560]中的数据取出来,此处就是阳光的数量。

5.接着我们需要找一个相对固定的内存地址,并将其填充到mov [xxxx],eax方框中,此时我们回到CE中(自动汇编窗口不要关闭),在内存查看器窗口选择视图->内存区域

我们需要浏览内存区域,找出一个具有读写权限的空地址,并且类型为映像的,这里还需要看后面的模块一定要是植物大战僵尸文件里的模块,此处我找到了一个内存地址 0B4CF000,双击即可跳转到相应的位置,这里我们不能选择02CA9000这个内存地址,因为这个地址是QQ拼音的模块。

6.通过双击0B4CF000地址,即跳转到相应的内存区域,如下在内存查看器中,标红处。

我们直接将0b4cf000这个内存地址填入到我们的汇编代码中,此时只要程序获取到阳光,会默认将阳光的数量放入0B4CF000这个内存中进行保存。

完成获取以后,我们直接在CE中添加这个内存地址,并开启自动汇编CT脚本,此时阳光的数量就可以获取到了。

我们再次来到反汇编窗口观察注入后的变化,可以看到CE是直接在D6679600处写入了 jmp 指令直接跳转到了我们自己写的代码中去执行了。

跟随00DF0000这个地址即可看到如下代码,没错!这些代码正是我们在CT表中分配的,当执行完获取数据以后则会自动跳转到原始地址0048982B继续执行原始代码。

总结:上方的的人造指针有一个小问题,那就是我们无法修改阳光的数量,其实这个问题很简单,在开头我们说过该地址有一个时钟一直在给这个地址赋值,而我们在开头查找的是内存访问,如果要修改数据,应该要找内存写入相关的地址。

植物大战僵尸:学会使用人造指针相关推荐

  1. 针对“扫雷“和“植物大战僵尸“游戏,分析,扫描,阳光值,植物,金币,僵尸的分析逆向

    <软件逆向分析> 2022年9月 目录 {#目录 .TOC-Heading} [一.实验工具介绍 3](#一实验工具介绍) [二.针对"扫雷"游戏 3](#二针对扫雷游 ...

  2. 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之植物篇

    目录 1.单卡片无CD 1.1 思路一 1.2 思路二 2.全卡片无CD 3.豌豆射手射速修改(修改植物射速) 4.实现豌豆射手发射"玉米加农炮"(思路) 上一期教程中,我们学习了 ...

  3. 32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址

    32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址 一丶基址,随机基址的理解 首先,全局变量的地址,我们都知道是固定的,是在PE文件中有保存的 但是高版本有了随机基址,那么要怎么解决这 ...

  4. 使用Cheat Enginee(CE)找到“植物大战僵尸”植物的内存基址

    使用Cheat Enginee(CE)找到"植物大战僵尸"植物的内存基址 首次扫描未知的初始值,在植物大战僵尸卡槽中从左到右依次点击植物,拿起植物时在ce中再次搜索精确数值0.1. ...

  5. 以休闲游戏“植物大战僵尸”为例,制作无限阳光修改器

    制作游戏修改器,应该有很多人对这类内容感兴趣吧. 发现这个游戏纯属巧合,一日我在百度搜索"植物"这个词时,搜索框下方就列出一大堆"植物大战僵尸"的相关内容,于时 ...

  6. 使用Cheat Enginee(CE)通关“植物大战僵尸”

    使用Cheat Enginee(CE)通关"植物大战僵尸" 方法有很多,这里只介绍一种,关于基址的寻找和进制的变换之前已经发过相应博客,感兴趣可以去我的主页学习. 修改关数 之前的 ...

  7. 使用Cheat Enginee(CE)找到“植物大战僵尸”金币的内存基址

    使用Cheat Enginee(CE)找到"植物大战僵尸"金币的内存基址 在ce中首次扫描当前金币数的十分之一,捡金币后再次扫描当前金币数的十分之一. 双击添加到地址列表,修改数值 ...

  8. 植物大战僵尸java 僵尸_生存僵尸启示录:文字,路径和基本动画

    植物大战僵尸java 僵尸 本系列的第一篇文章介绍了SVG的基础知识,这是HTML5的一个被忽视,未被重视的方面. 尽管不同的浏览器以不同的方式实现SVG,但是上一指南介绍了如何创建文本,合并SVG图 ...

  9. 女友让我破解植物大战僵尸!我干脆撸了一款一样的....翻身舔狗把歌唱呀

    今天给大家分享的开源项目可以说非常适合入门,还比较好玩,更是一个有故事的项目.既能满足想学习的读者,又能满足那些喜欢八卦的读者. 提到植物大战僵尸相信大部分读者都不陌生,可以说是塔防类游戏的鼻祖.就鸟 ...

  10. 【植物大战僵尸2】算法 笔记

    文章目录 春日活动--旅行原木--特殊事件--植物挑战_超能花菜 春日活动--暖春植树--初春挑战 地图解锁顺序建议 花园战争 超z联赛 无尽挑战 无尽常用植物及装扮 植物排名 春日活动–旅行原木–特 ...

最新文章

  1. 方糖全栈课 PHP React大系,方糖全栈课·PHP+React大系
  2. Python机器学习(三)--决策树算法
  3. 2.3.3 spring属性注入-注解注入-全注解-配置类扫描
  4. 数据库-分组语句及用法
  5. pythonos pathjson_python进阶05 常用问题库(1)json os os.path模块
  6. java.lang.IllegalArgumentException: KeyValue size too large
  7. 字符串匹配:字符串中查找某子串
  8. elasticsearch获取一个字段的值_Elasticsearch,你觉得自己懂了多少,看看这篇文章吧...
  9. 01.MVC5安装Ext.Net
  10. ArcGIS API for Silverlight之配准JPG图片地图文字倾斜解决方案
  11. spyder python下载_spyder中文版下载-spyder pythonv4.1.3 官方最新版下载__飞翔下载
  12. W10虚拟机一开机电脑蓝屏重启
  13. python进行回归分析与检验_R/python-回归分析
  14. java程序员面试简历注意事项
  15. 库卡机器人坐标手势_库卡机器人为何要几种坐标系?
  16. C语言小型商品管理系统
  17. 什么是二维数组以及二维数组传参
  18. Vulkan学习(十五): 总结
  19. matlab 循环平稳检测,循环平稳信号处理完整的Matlab工具箱
  20. 让百度快速收录新网站的方法是什么 让百度快速收录新网站的方法有哪些

热门文章

  1. Eclipse(JavaEE)下载地址
  2. Geometry-guided Kernel Transformer ——GKT代码复现
  3. 欧拉图——欧拉通路和欧拉回路
  4. 【数据结构与算法】期末复习刷题日寄Part01
  5. __name__的用法
  6. 硕士论文查重流程是什么?
  7. 机器人擂台的利剑_格斗机器人史上攻击力大排行,排名第一的果然是TA!
  8. VRF在区块链中的应用
  9. 新浪出输入法了,深蓝词库转换更新到1.3.1——增加对新浪拼音输入法的支持...
  10. pytorch 网络可视化(五):netron