【CE】图形化CE游戏教程通关手册
文章目录
- 【CE】图形化CE游戏教程通关手册
- 导读
- 需求
- 1️⃣ 第一关
- 提示
- 操作
- 总结
- 2️⃣ 第二关(代码共享)
- 提示
- 操作
- 验证
- 3️⃣ 第三关
- 提示
- 提示
- 总结
导读
需求
除了
Tutorial-x86_64.exe
教程外,CE还提供了图形化教程gtutorial-x86_64.exe
。作为强迫症
深度患者,自然是要把所有关卡都完成的,今天就按照小编的思路,一起通关图形化作弊教程吧。
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.2 执行一次打击,然后设置扫描类型为
减少的数值
,点击再次扫描
。
-
1.3 将扫描类型设置为
未变动的数值
,点击再次扫描
(不断的回到游戏,可以多次扫描未变动的数值
)。
重复1.2和1.3操作,射击4次后,只剩下22个结果。
-
1.4 我们从结果中,可以看到两个值为4的值。修改该值,目标血量也跟着进行了变化。可以猜测,该值就是我们想要的值。
-
-
找规律,我们重复攻击目标,会发现,每次血量都会减少
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 themTip/warning: Enemy and player are related
这两个敌人和你相比拥有更多的血量、造成更多的伤害。
消灭他们。提示/警告:敌人和玩家是相关联的。
操作
跟第一关相同的思路,我们应该做的是,将目标血量清零
。(盯着自己的血量不被清零比较难实现了)
-
定位敌人血量(参考第一关)
-
在两个敌人地址上执行《找出是什么改写了这个地址
F6
》,分别攻击两个敌人,定位到血量减少的代码,如下图: -
分析步骤2中的内容,发现减少敌人血量代码的是同一块(减少自己血量的代码也是这里)。
那么直接修改该处代码,当rax分别是0x00000000116F8D00
和0x0000000011927580
时,将其血量清零,是不是就可以了呢? -
在地址
"gtutorial-x86_64.exe"+400E3
(第2步中截图中的指令地址)处,增加代码注入,生成模板代码如下:
[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 hereoriginalcode:
sub [rax+60],edx
ret
add [rax],alexit:
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 killjmp originalcodekill:
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(传送),或者飞行,或者...
提示
根据提示,首先想到的就是坐标,玩家移动,坐标将被修改。
-
搜索出玩家横坐标地址。
按左右键不断移动玩家,搜索变动的数值
。
一直按左键,游戏边界检测,玩家坐标不会变化,搜索未变动的数值
。
不断重复上面的操作。
(PS:修改0x01631550
的第一个字节,玩家会消失,猜测是玩家是否挂掉的标记)
-
确认纵坐标
在内存窗口中,查看0x01631550
地址。
按空格键,使玩家跳起来,观察到0x01631558
地址的值会变化,确定纵坐标(修改该值为0,玩家会从高处落下!!!)。
-
修改代码,实现玩家飞行
右键0x01631558
地址,选择菜单《找出是什么改写了这个地址F6
》。
按空格键,使玩家跳起来,会发现有两处地址改写了纵坐标
。NOP
掉这两处代码即可。
其实 简单点 基本x,y 会一起编写 这样 y地址 = x地址 + 4 。当然也会存在个别的时候。
-
修改
纵坐标
,按左右键移动横坐标,使所有平台标记为绿色
。
-
测出地图中右下角坐标(0.97,0.86),修改玩家坐标,使玩家
瞬移
到右下角。
总结
整体分析过程梳理:
- 确认横坐标:搜索内存,分析出玩家坐标地址。
- 确认纵坐标。
- 修改代码,实现玩家飞行。(nop掉修改用户纵坐标的代码)
- 修改玩家纵坐标,按左右键移动横坐标,使所有平台标记为绿色。
- 测出地图中右下角坐标(0.97,0.86),修改玩家坐标,通关。