Cheat Engine进阶教程:gtutorial-i386闯关记 第三关 [完结撒花]

Cheat Engine进阶教程:gtutorial-i386闯关记 第三关 [完结撒花],第1张

内容回顾:

《Cheat Engine gtutorial-i386闯关记 第一关》

《Cheat Engine gtutorial-i386闯关记 第二关》

作者延续前一关变态作风,gtutorial第三关依然是不修改游戏无法过关(至少我不能!):左下角那个白色小人是玩家,画面上3个刺猬是移动障碍物,玩家触之即死。游戏提示为:将所有红色平台变绿即可开门。

整个游戏有2个难点:难点1,如果不修改游戏,玩家无法从平台A跳上平台B,更何况地面上还有刺猬捣乱,影响发挥!难点2,门开启的瞬间,这3个刺猬飞向门边,摆出副上门讨债的架势把门堵死了,玩家碰到刺猬又会过关失败,所以玩家根本无法进门。

现在进入正题,说说怎么过关,受这篇Creating a cheat table - Coordinates文章的启发,我的想法是修改玩家的坐标,让它可以到达画面的任意位置。由于这关有2个难点,所以本文分两部分介绍。

先说难点1,怎么开门: 在整个游戏中,除了玩家可以上下运动(跳跃),玩家和障碍物都可以横向运动,所以定位玩家的Y坐标要比定位X坐标简单。最开始,我在几个比较低的平台上来回跳跃来改变及定位玩家的Y坐标,但是由于刺猬的影响,Y坐标还没确定游戏就结束了。

所以我重新审视了一下游戏:作者说要让所有平台变绿才能开门,我算了下连同玩家脚下的地面一共有12块平台,作者有没有可能再程序中设置了全局变量记录变绿的平台数?让我们试一试。游戏开始时,地面已经变色,所以,在CE的value编辑框中输入1。"Scan Type"选择"Exact Value";Value Type选择"4 Byte",然后按"first scan"做初次扫描。接着再跳平台-扫描,重复几次,马上能定位存储着变色的平台的变量:

定位变量后就简单了,直接将变量值改为12,画面右边的门马上会开,但同时,游戏的后半部分情节马上开始(看看小人的表情,分明是再说WTF):

2 刺猬堵门后,由于没有干扰,搜索玩家的坐标反而变得一马平川了。先搜索X坐标,让玩家回到画面左下角,在CE上点击"New Scan","Scan Type"设为"Unknown initial value","Value Type"设为"Float",然后点击"First Scan"。

之后,控制玩家慢慢向右移动,每次移动-暂停时,在CE中设置"Scan Type"为"Increased value"并点击"Next Scan",反复几次即可定位x坐标。最终,读者会发现x坐标在[-1,1]区间内变动:

有了存储x坐标的变量的地址,估摸着存储y坐标的变量的地址肯定在附近。由于sizeof(float)=4,所以y坐标可能距离x坐标4字节。我们需要从Cheat table中复制黏贴2次x-coor项。第一次设置"Adjust address by"的值为4("Adjust address by"意为,复制项的地址距离源项的偏移),并设置该新添加的项在CT表中的Description为"y-coor(+4)";第二次设置"Adjust address by"的值为-4,并设置该新添加的项在CT表中的Description为"y-coor(-4)":

当然刚才添加的两个CT项并不一定就是y坐标,需要通过上下跳跃来验证其正确性。在游戏中按下"p"键即可让游戏暂定,我们在玩家起跳时记录下原始数据,当玩家起跳后再次记录数据,落地后第三次记录数据。通过以上步骤可以找到x坐标的地址+sizeof(float)=y坐标的地址。有了这两个坐标变量就可以随意改变玩家的位置,比如浮空(要达到浮空的效果,记得把x坐标和y坐标两个变量Freeze)如下图:

至此,过关不成问题了。但是,总觉得少了点什么?对,没做外挂!恩,这关的外挂做什么呢?好像整个游戏中定位玩家坐标的过程最为复杂,那就做个定位外挂,用来定位玩家坐标的基址~

首先定位访问y坐标的指令,在CT表中选中y-coor项,右键"Find out what write to this address"。

回到游戏中移动玩家,这时CE的"The following opcodes write to"窗口会列出修改y坐标的指令以及存储玩家坐标的结构体的基址(Extra Info中的 "The value of the pointer needed to find this address is probabyly 01905980"):

"Extra Info"窗口中显示,访问坐标基址的指针存放在edx中,好,那我们就写个AA脚本,将edx的写到全局可被访问的内存中,脚本如下:

激活脚本后,需要在CE的CT表中创建coorbase项-点击"Add address Manually"并填写"Add address"窗口中的内容:

coorbase存放的是指针,我们最终是要通过这个指针分别访问x/y坐标,所以还要分别手头添加2个地址,并把这几项拖到Step3下形成一组。并在Step3项上右键菜单"Group config"-"Hide children when deactived":

选这个选项的原因是coorbase是在Step3脚本中创建的,当disable这个脚本时coorbase被释放,再从被释放的地址去读玩家坐标显得不合理,故如此处理。

这是最终CT表中的表项:

当再次进入这个关卡并应用这个脚本马上能获得玩家的坐标~

原文链接: >

“检测到非法调试”一般是指程序在运行时检测到正在执行的代码是否被另外的一个调试工具的调试器监视着,如果发现被调试,就会触发警报或其他相关的安全机制,以防止恶意攻击,保护程序运行安全。

检测到非法调试通常是程序为了反制程序被其他人恶意窃取或篡改行为而设立的安全机制,常见于网络游戏、软件版权保护等领域。如果低权限程序将其它软件Hook住,那么就达到了非法调试的效果,这种情况下,被Hook的软件就会出现异常等情况。

总之,检测到非法调试是应用程序针对外部调试工具进行的一种自我保护机制,在软件开发和保护方面都是非常重要的。

大漠保护盾盾是一个常用的反作弊工具,它可以隐藏程序的调试信息、保护代码不被破解等。然而,它并不能完全隐藏进程,因为进程本身就是 *** 作系统的一部分,而 *** 作系统又是可见的。因此,如果有高级的反调试技术,还是能够发现进程的存在的。

不过,除非有专门的反调试技术,一般情况下使用大漠保护盾盾还是可以有效地保护程序不被破解和修改的。同时,还可以通过其他手段来增加程序的安全性,如加密代码、检测进程注入等方法。

总之,大漠保护盾盾虽然不能完全隐藏进程,但它仍是一款非常实用的反作弊工具,可以有效地保护程序的安全性。

数据逆向可以分为不同的级别,其中包括低级别、中级别和高级别。

低级别的数据逆向主要是通过简单的技术手段对数据进行解密、解码或解压缩,并破解软件的加密机制,例如逆向工程和破解软件注册码等。这种级别的数据逆向对技术要求较低,只需要基本的编程和计算机知识即可实现。

中级别的数据逆向需要具备更高级的技术要求,需要对程序代码进行深入分析,并掌握复杂的加密算法和协议。这种级别的数据逆向常常用于安全评估和漏洞挖掘领域,例如反作弊系统的破解和网络安全的攻防对抗等。

高级别的数据逆向则需要具备极高的技术水平,需要针对硬件设备进行逆向分析,并对 *** 作系统、内核和驱动程序进行深入研究。这种级别的数据逆向通常应用于安全研究、数字取证和恶意代码分析等复杂领域,并对技术人员的能力和经验提出了更高的要求。

以上就是关于Cheat Engine进阶教程:gtutorial-i386闯关记 第三关 [完结撒花]全部的内容,包括:Cheat Engine进阶教程:gtutorial-i386闯关记 第三关 [完结撒花]、加壳的程序可以用od调试不、检测到非法调试是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10114656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存