前言

在角色对战类中,拾取怪物掉落的装备是一项必备的工作,由于装备位置掉落的不确定性,玩家想要拾取离角色距离较远的装备需要一定的时间,这一段时间往往会影响游戏的评分或是玩家的心态,基于此,全屏捡物诞生了,通过作弊手段将一段时间节省了下来。

实现全屏捡物一般来说有两种方式,一种是改变自身可捡物的范围,另一种就是改变物品的坐标,把物品吸到可以拾取的范围里,我很早之前看到一份DNF的源码就是用第二种方法实现的,本文就用第一种方法实现这个功能。

首先,要这个捡物的范围,肯定是在捡物CALL附近的,所以最先要找的是捡物的代码,由于示例不是网络游戏,不能通过在发包处下断回溯去找,那么只能通过捡物这个过程去找到他的代码,可以是访问物品ID等等,这里就用一个简单的搜索地面物品数量来解决问题。

然后减少一个搜一次
访问后拾取

就得到了相应的地址,打开OD,下断,再去打一个物品然后拾取
段下后在上几层CALL下断
运行后发现

到这个CALL才不会断下,且从上方字符串可以看出这里应该是捡物代码段
尝试在地面没有物品的情况下捡物,发现这里并不断下来,说明上面有相关的判断
通过下断尝试 发现006BC414是在捡物动作触发后最先到达的地址

上面是一个switch-case语句在汇编中的表示,当eax=3是就跳转到捡物部分
一直F8往下运行,发现经过两个跳转来到了return处
因为此时地面是没有物品的,所以就直接return了
回过头去看发现是这个jle起了判断作用,jle是不大于跳转,上面cmp比较的是eax和ebx的值,也就是说当eax小于等于ebx的时候捡物就不继续进行了

地面没有物品的时候eax是0,ebx也是0,上面我们可以看到eax被作为006BC43F的一个参数,那么后面cmp的eax的值就是这个call 的返回值,不难猜到这个call 的作用就是返回在拾取范围内地面物品的数量,作为有这么一个功能的call他的参数里面很有可能包括拾取的范围,进入该call

Add esp,0x10 说明该cal有4个参数

可以直接看到的参数是3个,还有一个隐藏的参数是esi的值,因为esi储存的浮点型,它通过fild 和fstp dword ptr [esp]将它压人栈中
经调试发现这个esi的值一直是
尝试修改成10000后发现超出范围的物品已经能拾取了,说明这个地址就是一个存放拾取范围的地址,由于它不是一个基址,可以HOOK或者找到它的基址方便下一次的修改。

总结:

在分析的过程中,需要根据已知的条件做出一些合理的猜测和判断,最终实现所需要的功能。

【游戏逆向】】游戏全屏捡物的分析实现相关推荐

  1. CocosCreator h5游戏移动端全屏显示

    文章里的方法主要是针对creator游戏引擎的构建后项目,但是也可以由此文章中的方法,再作针对其他h5游戏引擎的修改,由此借鉴出其他h5游戏引擎的全屏显示. 先来看构建后的文件结构: 其中,红色框里的 ...

  2. 计算机玩游戏不能全屏,如果电脑游戏无法全屏显示怎么办?电脑游戏解决方案不能全屏显示...

    指南: 互联网已逐渐成为我们日常生活中不可或缺的一部分. 它不仅为我们带来了很多便利,还为我们的娱乐生活增添了很多乐趣. 许通过计算机玩一些游戏,并且在使用计算机玩网络游戏的过程中,我们都希望游戏可以 ...

  3. 计算机玩游戏怎么会突然有边框,电脑打游戏怎么设置全屏

    第一步:开始菜单找到运行,如果没有在搜索框中输入"运行"也可以,输入"regedit",打开注册表编辑器.依次找到:HKEY_LOCAL_MACHINE---- ...

  4. 计算机玩游戏不能全屏,电脑玩游戏为何不能全屏?电脑玩游戏不能全屏的解决方法...

    听到很多网友反馈说常常遇到win10系统玩游戏不能全屏的问题,对于电脑水平薄弱的网友来说确实是一个难题.win10系统玩游戏不能全屏确实影响游戏体验,怎么办?这里,今天小编就来分享Win10玩游戏不能 ...

  5. 游戏开始了------全屏与横屏

    现在大概是要做个3D第三人称视角的对战类游戏,其实已经做了很久了,可后来发现设计有问题,现在返工重新再来.另外本人的java编程能力有限,并没有认真学过java,都是做到哪学到哪的,也还没工作,尚无工 ...

  6. win7玩游戏时不能全屏该怎么解决

    Win键+R键,打开运行窗口,输入regedit 回车,这样就打开了注册表编辑器,然后,定位到以下位置:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ ...

  7. 西瓜播放器全屏功能源码分析

    H5业务中使用了西瓜播放器,嵌入各个APP,全屏时候会有相应的差异. 带着好奇心,阅读一下xgpplayer全屏功能部分源代码. 源码地址 一.工具方法 其他方法看名称就知道是dom操作相关,无需多说 ...

  8. 【游戏逆向】FPS网络游戏自动瞄准漏洞分析以及实现二

    开始分析人物结构 由于人物结构是一个结构体,该结构体的起始地址为人物对象地址,所以,我们继续用CE的结构体分析工具去分析人物对象地址,也就是刚才的eax地址: 通过观察,我们立刻就得到了人物名称的偏移 ...

  9. 【游戏逆向】FPS网络游戏自动瞄准漏洞分析以及实现

    了解FPS游戏自瞄漏洞 经常玩游戏的朋友,应该知道FPS游戏,例如:穿越火线,逆战等等,他们的特点就是以第一人称视角进行操作人物,屏幕中间会有一个准星,通过准星瞄准敌人进行攻击以达到击杀效果和游戏体验 ...

最新文章

  1. sscanf用法总结
  2. mysql 设置表空间位置_如何修改表空间数据文件路径
  3. QTP 中 通过 Test Setting 设置 function libraries 与 test 的关联
  4. 中国最大的python社区-python中的最小最大算法
  5. ubuntu18.10 cosmic更换阿里云的源
  6. 电脑pin重置_如果忘记了如何重置Windows PIN
  7. 信息系html5论文,基于HTML5的智力游戏设计电子信息工程本科学生毕业论文.doc
  8. flask 知识点总结
  9. 一文详解物化视图改写
  10. Python字典values()方法与示例
  11. 爱护身体之简易程序员健身操
  12. 讯飞C/C++语音合成基础篇
  13. Flutter根据偏移量转换角度 Offset 的使用实例
  14. fetch移动端浏览器兼容问题
  15. eureka hostname作用_springcloud使用Eureka实现服务治理替代dubbo加zookeeper
  16. html 弹窗 支持ie8,浏览器兼容性的问题、支持IE8、不支持IE6、想解决这个问题、两个都支持、...
  17. gps频率范围_如何计量检定频率计数器
  18. 拓端tecdat|R语言最优聚类数目k改进kmean聚类算法
  19. 超详细的ENSP安装教程附下载地址
  20. knockout的监控数组实现 - 司徒正美

热门文章

  1. OpenCV 学习资料分享:中文、图文、代码注释并茂,建议收藏
  2. Hxbuilder连接安卓模拟器
  3. linux nfs文件挂载模拟云存储
  4. Hi3861板卡介绍
  5. 面试题.17.07.婴儿名字--并查集
  6. python蓝屏文件保存_请帮我看看转储存文件,是什么原因造成蓝屏!
  7. 用 CSS3 画心形和搜索放大镜图标
  8. Mybatis-Plus入门(新版3.5.2)
  9. Python绘图——漂亮的玫瑰(源代码)
  10. 中国品牌日,英派斯与世界共享优质健身器材