前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2.4 CE修改器:代码替换功能

2.4 CE修改器:代码替换功能

作者头像
微软技术分享
发布2023-11-15 08:31:47
3170
发布2023-11-15 08:31:47
举报
文章被收录于专栏:灰帽黑客:攻守道

代码替换功能,需要使用 Cheat Engine 工具的“代码查找”功能,来查找游戏数据存储在内存中的地址。首先找到当前数值的存储地址,并将其添加到下方地址列表中。然后右键单击该地址,并选择“找出是什么改写了这个地址”,将弹出一个空白窗口。接着,点击本教程窗口上的“改变数值”按钮,并返回 Cheat Engine,如果操作没有问题,在空白窗口中将出现一些汇编代码。选中代码并点击“替换”按钮,将其替换为什么也不做的代码(空指令),同时,修改后的代码也将放置在“高级选项”的代码列表中保存。点击“停止”,游戏将以正常方式继续运行,关闭窗口。现在,再次点击教程窗口上的“改变数值”,如果锁定速度足够快,“下一步”按钮将变为可点击状态。提示:在锁定地址时,如果速度足够快,“下一步”按钮也会变为可点击状态。

某些游戏重新开始时,数据会存储在与上次不同的地方, 甚至游戏的过程中数据的存储位置也会变动。在这种情况下,你还是可以简单几步搞定它。这次我将尽量阐述如何运用 "代码查找" 功能。

本关同样需要使用精确数值扫描的内容来得到一个唯一的内存地址,读者可通过自己的尝试来找到这个地址,如下图所示;

当读者找到这个内存地址后,可在该地址上方右键,并选中找出是什么改写了这个地址,这就意味着当进程内的数值再次发生变化时,改写代码就可显示在列表中;

当读者点击改写按钮后CE则会监控这个内存区域,回到进程中点击改变这个数值,则CE会输出如下图所示的一段汇编代码;

CE修改器中所实现的是什么访问了内存地址以及是什么改写了内存地址其本质上是修改器在特定内存区域设置了内存断点,内存访问断点和内存写入断点都是用于对内存访问的监控和跟踪功能。

  • 内存访问断点 [Access Breakpoint] 是指监控指定内存地址的读取操作(如MOV、MOVSX、MOVZX指令),当程序执行这些指令进行读取操作时,内存访问断点会中断程序运行,弹出断点信息窗口,并暂停程序的执行,以便进行调试和修改。
  • 内存写入断点 [Write Breakpoint] 是指监控指定内存地址的写入操作(如MOV、ADD、SUB、PUSH、POP指令),当程序执行这些指令进行写入操作时,内存写入断点会中断程序运行,弹出断点信息窗口,并暂停程序的执行,以便进行调试和修改。

两者的主要区别在于监控的操作不同,内存访问断点监控的是对内存地址的读取操作,而内存写入断点监控的是对内存地址的写入操作。根据实际需要进行选择,使用内存访问断点或内存写入断点能够更方便地定位和排除程序问题,提高程序的可靠性和稳定性。

因为上图中我们选择的是改写地址,所以下的是内存写入断点,一旦特定内存区域被写入数据时,则断点会自动停留在修改此段数据的汇编指令上面,

此时我们选中代码并点击"替换"按钮,将它替换成什么也不做的代码(空指令),汇编的空指令为 nop,同时,修改后的代码也将放置在"高级选项"的代码列表中去(保存地址列表时会同时保存),至此点击下一步则可通关。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档