【CE】图形化作弊教程通关手册(超真实的游戏体验)

本文介绍了使用CheatEngine的图形化教程gtutorial-x86_64.exe的通关策略,涉及翻译操作、代码共享和寻找目标血量的方法。作者通过内存扫描和代码注入技术,分别解决第一关的目标摧毁、第二关的敌人消灭和第三关的飞行机制,展示了多种解决问题的思路。文章强调了不断尝试和分析的重要性,并提供了相关参考资料。
摘要由CSDN通过智能技术生成

🛫 导读

需求

除了Tutorial-x86_64.exe教程外,CE还提供了图形化教程gtutorial-x86_64.exe。作为强迫症深度患者,自然是要把所有关卡都完成的,今天就按照小编的思路,一起通关图形化作弊教程吧。
在这里插入图片描述

开发环境

版本号描述
文章日期2023-03-
操作系统Win11 - 21H2 - 22000.1335
Cheat Engine7.4

1️⃣ 第一关

在这里插入图片描述

翻译

Every 5 shots you have to reload.
after which the target will heal
Try to find a way to destroy the target
(Click to hide)
5 次射击,您就会被重新加载目标,之后目标会愈合。
尝试找到一种方法来摧毁目标。

操作

简单的尝试就明白,目标不会被直接摧毁,简单的说,就是第5次执行的时候会被重置。
其实,这个5是个坑,我们应该做的是,将目标血量清零。

  1. 定位目标血量
  • 1.1 按照下图配置,进行首次扫描
    在这里插入图片描述
  • 1.2 执行一次打击,然后设置扫描类型为减少的数值,点击再次扫描
    在这里插入图片描述
  • 1.3 将扫描类型设置为未变动的数值,点击再次扫描(不断的回到游戏,可以多次扫描未变动的数值)。
    重复1.2和1.3操作,射击4次后,只剩下22个结果。
    在这里插入图片描述
  • 1.4 我们从结果中,可以看到两个值为4的值。修改该值,目标血量也跟着进行了变化。可以猜测,该值就是我们想要的值。
    在这里插入图片描述
    在这里插入图片描述
  1. 找规律,我们重复攻击目标,会发现,每次血量都会减少24点。
    那么我们直接将血量改为24,是不是就可以完成任务了。尝试之,的确有效。
    不过,这里需要注意的是,不能在最后一次攻击的时候设置24,否则依然会使得血量恢复。而且不能直接设置为0,攻击没有任何效果。
    在这里插入图片描述

总结

  • 搜索技巧:未知初始值、减少的值、不变的值。
  • 多观察、多猜测,每次减少24。
  • 不断尝试修改,并验证,两个血量就是目标血量,改了后能看到血量变化。

ps: 本关还有很多种解法,之前尝试修改代码,让血量直接变为0,也能成功。
游戏本身就是这样,不只有一种解法,缕清思路,不断尝试,总能找到合适的方案。

2️⃣ 第二关(代码共享)

在这里插入图片描述

翻译

Step 2:
These two enemies have more health and do more damage to you than you do to them.
Destroy them

Tip/warning: Enemy and player are related
这两个敌人和你相比拥有更多的血量、造成更多的伤害。
消灭他们。

提示/警告:敌人和玩家是相关联的。

操作

跟第一关相同的思路,我们应该做的是,将目标血量清零。(盯着自己的血量不被清零比较难实现了)

  1. 定位敌人血量(参考第一关)
  1. 在两个敌人地址上执行《找出是什么改写了这个地址F6》,分别攻击两个敌人,定位到血量减少的代码,如下图:
    在这里插入图片描述
  1. 分析步骤2中的内容,发现减少敌人血量代码的是同一块(减少自己血量的代码也是这里)。
    那么直接修改该处代码,当rax分别是0x00000000116F8D000x0000000011927580时,将其血量清零,是不是就可以了呢?
  1. 在地址"gtutorial-x86_64.exe"+400E3(第2步中截图中的指令地址)处,增加代码注入(参考小编的《【CE】Mac下的CE教程Tutorial》系列文章),生成模板代码如下:
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,"gtutorial-x86_64.exe"+400E3) 
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
sub [rax+60],edx
ret 
add [rax],al

exit:
jmp returnhere

"gtutorial-x86_64.exe"+400E3:
jmp newmem
nop
returnhere:
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"gtutorial-x86_64.exe"+400E3:
sub [rax+60],edx
ret 
add [rax],al
//Alt: db 29 50 60 C3 00 00

newmem: 下面增加如下代码:

cmp eax, 0000000011927580
je kill
cmp eax, 00000000116F8D00
je kill

jmp originalcode


kill:
mov edx, [rax+60]
sub [rax+60],edx
ret

比较修改前后代码,如下图(包含代码含义):
在这里插入图片描述
上面的汇编代码可以有很多种,只要能完成任务即可。

验证

这个操作需要特别注意,需要快速攻击两个敌人,时间不能差太多,否则会出现第二个角色回血的现象。
等待敌人被命中,将会弹出成功的对话框。
在这里插入图片描述

3️⃣ 第三关

在这里插入图片描述

翻译

Step 3:
Mark all platforms green to unlock the door
Beware: Enemies are 1 hit kill(and bad losers)
Have fun!

Hint: There are multiple solutions
e.g: Find collisiton detect with enemies.or teleport, or fly
Or ..
把每个平台标记为绿色可以解锁那扇门。
注意:敌人会将你一击致命(然后就失败了)
玩的愉快!

提示:有很多解决方案。
比如:找到与敌人的碰撞检测,或者 Teleport(传送),或者飞行,或者...

操作

根据提示,首先想到的就是坐标,玩家移动,坐标将被修改。

  1. 搜索出玩家横坐标地址。
    按左右键不断移动玩家,搜索变动的数值
    一直按左键,游戏边界检测,玩家坐标不会变化,搜索未变动的数值
    不断重复上面的操作。
    (ps:修改0x01631550的第一个字节,玩家会消失,猜测是玩家是否挂掉的标记)
    在这里插入图片描述
  1. 确认纵坐标
    在内存窗口中,查看0x01631550地址。
    按空格键,使玩家跳起来,观察到0x01631558地址的值会变化,确定纵坐标(修改该值为0,玩家会从高处落下!!!)。
    在这里插入图片描述
  1. 修改代码,实现玩家飞行
    右键0x01631558地址,选择菜单《找出是什么改写了这个地址F6》。
    按空格键,使玩家跳起来,会发现有两处地址改写了纵坐标NOP掉这两处代码即可。
    在这里插入图片描述
  1. 修改纵坐标,按左右键移动横坐标,使所有平台标记为绿色
    在这里插入图片描述
  1. 测出地图中右下角坐标(0.97,0.86),修改玩家坐标,使玩家瞬移到右下角。
    在这里插入图片描述

总结

整体分析过程梳理:

  • 确认横坐标:搜索内存,分析出玩家坐标地址
  • 确认纵坐标。
  • 修改代码,实现玩家飞行。(nop掉修改用户纵坐标的代码)
  • 修改玩家纵坐标,按左右键移动横坐标,使所有平台标记为绿色
  • 测出地图中右下角坐标(0.97,0.86),修改玩家坐标,通关。
    在这里插入图片描述

🛬 文章小结

本篇文章,小编尝试了很多种可能,最终写的时候,只写了成功的思路。三关都很有意思,尤其是第三关,让人立马想到游戏中的实现,对以后分析游戏有很大的帮助。
对分析过程感兴趣的,可以参考文章《[调试逆向] CE教程:进阶篇 CE Tutorial Games gtutorial https://www.52pojie.cn/thread-915447-1-1.html》,该文章总结了作者的无数猜想和尝试,十分有意义。

总之,不断思考,不断尝试,不断总结,慢慢的就会积累出各种思路。
小编将与你们同在,一起继续分析各种应用。
逆向之旅,永不停歇。

📖 参考资料

ps: 文章中内容仅用于技术交流,请勿用于违规违法行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜猫逐梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值