吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14086|回复: 24
收起左侧

[原创] CE6.8 gTutorial STEP 1,2,3全集 简单破解教程

  [复制链接]
vnetuser 发表于 2018-11-25 22:16
本帖最后由 vnetuser 于 2018-11-27 19:07 编辑

前提

本人刚接触CE 学了大概一周时间,一直在学习官方的tutorial,6.8新出了gTutorial 第一关就卡了很久,耗时一个周末的时间终于well done!便想着分享出来.有需要改进的地方,大家多多提携.


Step 1 过关方法

游戏说明:每5次射击你必须重新装填,在这个过程中目标会回复血量,尝试找到一种方法消灭目标。

过关思路:找到目标血量秒血(秒怪)或上调可射击次数(无限子弹)

秒怪

(假设所有前戏都已经做足) 先找目标血量
0x1 CE中首次扫描.4字节,未知的初始值(Unknown Initial Value)
0x2 CE中再次扫描 未变动的数值(Unchanged value),可以多点几次.初次过滤一点点值
0x3 tTutorial中射击一次,看到目标减血后(子弹飞行中目标不减血的),再次扫描 减少的数值(Decreased Value)
0x4 ,当最后一发子弹射出后目标会恢复血量后,再次扫描 增加的数值(Increased Value)
0x5 一两轮过后剩余的结果值基本在个位数了.这时候直接操作gTutorial不断射击来观察列表中值的变化
0x6 其中有个值规律:100->76->52->28->4->100 这时基本可以锁定目标血量的地址并加入地址列表
001.png
0x7 A) 尝试修改血量为0,发射子弹..打不到目标[过关失败],修改血量为4 发射子弹[Well done!]
B) 地址列表中血量地址右键->找出是什么改写了这个地址(Find out what writes to this address),射击一次
找到对应指令后 显示反汇编程序(Show disassembler)

gtutorial-x86_64.exe+3B033 - mov [rax+70],edx { 目标血量赋值}

自动汇编(Auto assemble)代码注入(Code injection) 将上面的血量赋值为0

        originalcode:
        mov [rax+70],0
        cmp qword ptr [rax+68],00

执行(Execute)并切换到gTutorial 发射子弹[Well done!]

无限子弹

0x1 这里用1)中的方法 找了很久没有找到地址 .于是换了个思路.这里可能是计数已射击的次数的.那搜索方法与1)就反过来搜
0x2 CE中首次扫描.4字节,未知的初始值
0x2 CE中再次扫描 未变动的数值(Unchanged value),可以多点几次.初次过滤一点点值
0x3 tTutorial中射击一次,看到目标减血后(子弹飞行中目标不减血的),再次扫描 增加的数值
0x4 ,当最后一发子弹射出后目标会恢复血量后,子弹重新装填,再次扫描 减少的数值
0x5 一两轮过后剩余的结果值基本在个位数了.这时候直接操作gTutorial不断射击来观察列表中值的变化
0x6 其中有个值规律:0->1->2->3->4->0 这时基本可以锁定记录发射的地址并加入地址列表
0x7 地址列表中血量地址右键->找出是什么访问了这个地址(Find out what accesses this address),射击一次,找到关键代码
002.png

 gtutorial-x86_64.exe+3C0D1 - cmp dword ptr [rbx+6C],05 { 判断发射数是否到5 }

显示反汇编程序(Show disassembler) 双击 修改汇编代码 将5改为50,确定(OK)
003.png
并切换到gTutorial 连续发射子弹[Well done!]

Step 2 过关方法

游戏说明:这两个敌人血厚,伤害高。过关提示/警告:敌人和玩家是相关联的。

001.png

过关思路:看游戏说明第一印象就是CE经典Tutorial里Step 9 的形象化,就按解Step 9的的方法来

结构分析

0x1 找我方血量地址 CE中首次扫描.4字节,精确数值(Exact Value) 100
0x2 gTutorial射击后 我方中弹减血后CE里再次扫描 精确数值(Exact Value) 96 很快找到唯一地址.加入地址列表
0x3 找我方血量地址的偏移,地址列表中我方血量地址右键->找出是什么改写了这个地址,射击一下显示关键代码

gtutorial-x86_64.exe+3EE53 - sub [rax+60],edx

我方血量地址0011E0E0及偏移量60到手
0x4 找左前方的敌人1血量地址 CE中首次扫描.4字节,值大于...(Bigger than...) 100(如果敌人不满血了,就有未知的初始值来搜
0x5 gTutorial中瞄准左前敌人射击(射不中,就换个姿势再来一次,一直没办法中的话就去XX医院治治吧), 敌方中弹减血后(掉血不明显就多射几次)CE里再次扫描 减少的数值, gTutorial射击->CE扫描减少的数值 多来几次(如果结果还是较多的话.中间可以不射击 扫描未变动的数值加以过滤,将找到的地址加入地址列表,按0x3的方法找偏移.关键代码

gtutorial-x86_64.exe+3EE53 - sub [rax+60],edx

敌人1血量地址0011E2C0及偏移量60到手
0x6 同0x5找右前方敌人2 血量地址0011E360及偏移量60以及关键代码

gtutorial-x86_64.exe+3EE53 - sub [rax+60],edx

0x7 从上面的关键代码和偏移量可以看出这个同CE的经典Tutorial里Step 9是极其类似,那同样的用分析数据/结构(Dissect data/structures)来处理数据.找到我方与敌方的不同点
002.png
大致我们猜测 起始地址+60 为当前血量,+64为初始血量,+70或+78可能是队伍编号,做敌我双方识别的字段值挺多的.这里我用+70的0和1来做区分
0x8 内存浏览器(Memory Viewer)中上面的关键代码行(在血量地址的改写监听窗口.点击显示反汇编程序能快速选中),下面就是自动汇编环节,最终代码如下

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,"gtutorial-x86_64.exe"+3EE53) 
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
cmp [rax+70],0
je exit
originalcode:
mov [rax+60],0//快速秒血
exit:
ret
add [rax],al
jmp returnhere

"gtutorial-x86_64.exe"+3EE53:
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"+3EE53:
sub [rax+60],edx
ret 
add [rax],al
//Alt: db 29 50 60 C3 00 00
一点小疑惑

减血代码中sub [rax+60],edx edx存放了不同队伍的子弹攻击力的值,由于对汇编的熟悉程序不够,没找到这个攻击力.edx在哪赋值的,各位可以指点一下

Step 3 过关方法

游戏说明:标记所有跳板为绿色可以解锁那扇门。注意:敌人会将你一击致命(然后就失败了)玩的愉快!提示:有很多解决方案。比如:找到与敌人的碰撞检测,或者Teleport(传送),或者飞行,或者...。

003.png

过关思路:实施说能过这一关.实属侥幸,一开始的思路是找到平台是否为绿的FLAG来解锁门,但我不会遍历呀(怎么破,怎么破).那就手动一个个的改,后面怪物堵门的解决方案第一反应就是传送,什么碰撞检测.有点高深了.还没学会

开门

004.png
0x1 找我认为的第一个跳板的Flag,我猜想的是红变绿是 0->1 最后什么也没扫到.
0x2 那换个思路吧 未知的.变化的扫,步骤是CE中首次扫描.4字节 未知的初始值,gTutorial中跳上我认为的第一个跳板变绿后再次扫描 变动的数值,,gTutorial中跳下来撞怪物自杀,第一个跳板变红后(注意一定等变红,不是死亡,我们搜的是跳板的变动.不是人物的变动)再次扫描 变动的数值  循环几次扫描 ,中间再穿插几次未变动的值进行搜索,
0x3 最后一堆大结果,,感觉进不下去了 ,但偶然发现第一页有个数值的变动是1->2->1->2这样有规律的变动,先把这地址记录到地址列表,准备用第二个来验证是不是flag是1,2的变化时,这个数值变成了3.继续跳下个跳板,数值变成了4.这...这..突然想到会不会这个是值是记录已经变绿的跳板数(前面的所有所有操作方向错了),但我只跳了3个呀,怎么会是多一个呢,仔细看游戏原来特么的最下面的一个全窗口宽度的绿色也算是1个..那直接改值吧改成100 ,门果然开了.然后怪物去堵门了.能开这个门纯属意外
006.png

传送

0x1 人物在最下面的一个跳板上左右移动来找横向坐标点就行了,通常是左移坐标-1,右移坐标+1
0x2 CE中首次扫描.4字节 未知的初始值 gTutorial中左移一下 CE中再次扫描 减少的值, gTutorial中右移一下 CE中再次扫描 增加的值,中间穿插几次 再次扫描 未变动的数值,最后结果 扫描失败
0x3 好吧换个类型扫描单浮点数,CE中首次扫描.4字节 未知的初始值 gTutorial中左移一下 CE中再次扫描 减少的值, gTutorial中右移一下 CE中再次扫描 增加的值,中间穿插几次 再次扫描 未变动的数值,最后能找到唯一值,稍微验证一下就是我们要的横向坐标点,加入地址列表
0x4 我们左右移动下看看大概的坐标范围(小心怪物碰到就GAME OVER),全屏的坐标范围应该是-1~1之间,修改值为1 ,
0x5 [Well done!]此刻应该有掌声

无敌

碰撞检测这个我还不会,马上去学习下解迷宫的,然后回来尝试下.能搞定就补充上

飞行

这个就更高深了,需要解决重力问题,等待大神来指点  

知识储备

免费评分

参与人数 7威望 +1 吾爱币 +17 热心值 +6 收起 理由
Ganlv + 3 + 1 用心讨论,共获提升!
TheRain + 1 用心讨论,共获提升!
dhg2003829 + 1 有心人啊。。。
Hmily + 1 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wadsq1081 + 1 + 1 写的不错 ,继续努力
tianya0908 + 1 + 1 用心讨论,共获提升!
快乐王子 + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

  • · 好帖|主题: 549, 订阅: 87

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| vnetuser 发表于 2018-11-29 16:53
她家的小帅哥 发表于 2018-11-29 11:10
有个很简单的问题想问下,减60是为了防止前面的血量也显示出来,楼主怎么确定是60之后的就是正确的呢?因为 ...

(由于本身汇编不是很精通,说一下我的个人理解,仅供参考)正如你所说的.血量如果在人物属性的结构刚好是最后一个字段值的话.那血量后的数据应该都是无用的.可能全是00,也可能是乱七八糟的无序数据..那如何确定后面的值能不能用.那就体现了CE里分析数据/结构(Dissect data/structures)这个工具的优势了.在这里我们可以对数据进行横向对比.数据列越多对比效果越明显
她家的小帅哥 发表于 2018-11-29 11:10
有个很简单的问题想问下,减60是为了防止前面的血量也显示出来,楼主怎么确定是60之后的就是正确的呢?因为我昨天没看教程之前一直选的前10里面的,所以错了很多次。
fhyz 发表于 2018-11-25 22:49
kkzdq 发表于 2018-11-25 23:42
本帖最后由 kkzdq 于 2018-11-25 23:43 编辑

额恩继续学习
吾2PJ小子 发表于 2018-11-26 00:05 来自手机
大佬,求份CE教学资料

点评

请先看完帖子再回复  发表于 2018-11-26 01:11
快乐王子 发表于 2018-11-26 08:54
学习了,不错啊
A494306040 发表于 2018-11-26 09:14
小白一脸膜拜
dszbox 发表于 2018-11-26 09:29
谢谢分享哦!~
gunxsword 发表于 2018-11-26 09:59
不错的新手教程,支持一下
arryboom 发表于 2018-11-26 11:14
gtutorial里面有D3D相关的实验么?似乎不是官方的出的?

免费评分

参与人数 1吾爱币 -1 收起 理由
luanshils -1 我可以悬赏,你凭什么这样乱扣,分还你,非要跟我怼也没办法

查看全部评分

头像被屏蔽
cy5520 发表于 2018-11-26 14:35
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 13:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表