Cheat Engine — 封弊者

在看了腾讯游戏竞赛;发现对游戏了解太少,在调试的时候尽管可以跟进关键部分。但是不了解引擎,游戏坐标建模这些;感觉看到了也没什么感觉。所以就先学了下CE这个对游戏的作弊引擎;最起码能做出个改视角的题。

CE作弊引擎,可以更改游戏中内存数据,视角的修改。而且其中还有代码注入,反汇编,调试的功能。在其中支持lua语言,D3D功能。其他的功能还要慢慢试了。

最新的版本到了6.83,我用的是6.5。
软件特意加了关卡,来帮助新手们学习使用CE-- Tutorial

图片.png

通过这个关卡来学习下使用

step - 1

图片.png

算是告诉你怎么才算通关,只要满足某些条件;Next按钮就可以点击到下一步。

step - 2 - 数值搜索

图片.png

要求是将我们的血量改为1000

首先点击加载进程,找到Tutorial。


图片.png
图片.png

搜索血量值:100 ,会找到很多;这时就需要不断点击Hit me来改变血量来锁定具体数值。


图片.png

然后将找到的数据添加到下方的table中


图片.png

更改为1000进入下一关。

step - 3 未知数值

图片.png

有些时候,我们看不到具体的血量,我们在攻击的时候可以看到减少的数值。将这个血量改为500

图片.png

这就是本关的情景,点击 new scan 开始新的搜索。

图片.png

将搜索类型改为未知

图片.png

之后添加到 table 中,改为 500 即可。

step - 4 浮点类型

图片.png

将搜索的类型改为float double,其他和之前操作类似,更改为5000即可。

step - 5 代码查找器

图片.png

储存数据的地址不是固定不变的,每一次重启游戏通常都会变动,甚至在你玩游戏的过程中地址都有可能改变,这一关讲解使用代码查找的方法。

找到数值添加到 table 中,点击 find out what writes to address


图片.png

可以看到此处控制数据的变化,将这处汇编使用nop填充,之后数据的地址便不会更改。

其实是在这个地方会下一个断点,为了不影响以后操作将断点 stop 取消。

图片.png

在高级选项中可以将更改的代码再次恢复 restore with ordinal code

step - 6 指针

在前面的步骤中,我解释了如何使用代码查找器来处理更改的位置。但仅此方法就很难找到设置所需值的地址。
这就是为什么有指针:
底部有两个按钮。一个更改值,另一个更改值和值的位置。
对于这一步,您不需要真正了解汇编程序,但如果您了解汇编程序,它会有很大帮助。
首先找到值的地址。当您找到它时,使用函数来找出访问这个地址的对象。
再次更改该值,列表中将显示一个项目。双击该项目。(或选择并单击“更多信息”),将打开一个新窗口,其中包含有关运行指令时发生的情况的详细信息。
如果汇编程序指令在“[”and“]”之间没有任何内容,则使用列表中的另一项。
如果它做了,它会说它认为什么是你需要的指针的值。
返回到作弊引擎主窗口(如果需要,您可以保持这个额外的信息窗口打开,但如果关闭它,请记住[和]之间的内容),并用十六进制对额外信息告诉您的值进行4字节扫描。
扫描完成后,它可能会返回1个或几百个地址。大多数时候,你需要的地址都是最小的。现在单击“手动添加”并选中“指针”复选框。
窗口将更改并允许您键入指针地址和偏移量。
把你刚找到的地址填成地址。
如果汇编程序指令在末尾有一个计算(例如:[ESI+12]),则在末尾键入该值。否则,请保留0。如果是更复杂的指令,请看计算。
更复杂的指令示例:
[eax*2+edx+00000310]eax=4c,edx=00801234。
在这种情况下,edx是指针的值,eax*2+00000310是偏移量,所以您要填写的偏移量是2*4c+00000310=3a8。(这都是十六进制的,使用科学模式下Windows中的calc.exe进行计算)
回到教程中,单击“确定”,地址将被添加,如果一切正常,地址将显示P->XXXXXXX,其中XXXXXXX是您找到的值的地址。如果这不正确,你就做错了。
现在,使用您在5000中添加的指针更改值并冻结它。然后单击“更改指针”,如果一切都结束
右键“下一步”按钮将变为可见。
额外的:

你也可以使用指针扫描器找到指向这个地址的指针

说的很详细,操作细节都写上了;这里说的是另外一种更改数据的方法,通过指针进行查找。

还是先找到数据添加到 table 表中 ,找到此处数据所在的位置。


图片.png

点击More information

图片.png

记下这个数据,这是指针所在的地址,找到之后添加到 table 中


图片.png

记下这个数据的基址

点击添加地址


图片.png

指针填的是基址,之后添加此地址,锁定更改数据即可

图片.png

step - 7 代码注入

将伤害由 1 改为加 2

找到
通过show asemable 中的 tools,找到auto assemble


图片.png

之后就可以更改了


图片.png

step - 8 多级指针

点击 Change pointer之后的 3 秒内 将新的数值锁定在 5000。

在步骤6中,您有一个简单的级别1指针,找到的第一个地址已经是实际的基地址。
然而,这个步骤是一个级别4指针。它有一个指向指向指向指向指向运行状况的指针的指针。
图片.png

同时记下地址数值,按照这个数据来找到指针


图片.png

通过
Find out what accesses this address 来找到以下两条指令

图片.png

这里多级指针的意思就是不断向上级地址


图片.png

不断向上查找找到源头

图片.png

依次查到偏移为18 0 14 c


图片.png

(不清楚在那里出了错误,有一会所有地址都无法搜到,重启几次程序就好)

step - 9 共享代码

有时候使敌人掉血的代码和使自己掉血的代码是同一个代码,单纯修改这个代码会使要么同时对自己和敌人有利,要么同时有害,而不是对自己有利,对敌人有害。

这一关重现了这样一种情况:己方初始血量很少,且被攻击一次掉血很多,敌方初始血量很多,且每次攻击只掉1滴血。

你需要做的是:不使用锁定,让己方不死,而敌方阵亡。

按照之前的找到四个数据,进行代码注入

alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

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

originalcode:
mov [ebx+04],eax
fldz 

exit:
jmp returnhere

"Tutorial-i386.exe"+261D7:
jmp newmem
returnhere:
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(no_decrese_health) // 在这里定义一个标签
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
// 在这里添加代码
cmp [ebx+10], 1 // 判断 [ebx+10] 是否为 1
je no_decrese_health // 如果相等的话,则跳转到 no_decrese_health 标签

originalcode:
mov [ebx+04],eax
no_decrese_health: // 在这里使用这个标签
fldz 

exit:
jmp returnhere

"Tutorial-i386.exe"+265B7:
jmp newmem
returnhere:
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(no_decrese_health) // 在这里定义一个标签
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
// 在这里添加代码
cmp byte ptr [ebx+15], 44 // 判断 [ebx+15] 是否为 D
je no_decrese_health // 如果相等的话,则跳转到 no_decrese_health 标签
cmp byte ptr [ebx+15], 45 // 判断 [ebx+15] 是否为 E
je no_decrese_health // 如果相等的话,则跳转到 no_decrese_health 标签

originalcode:
mov [ebx+04],eax
no_decrese_health: // 在这里使用这个标签
fldz 

exit:
jmp returnhere

"Tutorial-i386.exe"+265B7:
jmp newmem
returnhere:

这是找的两个方法,点击重启便会退出,不过其他人的会显示一个well done 提示框,就很难受。

ps:我没有用新版本的原因是在win10上面,所有的操作都会弹框报错就没有再管

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容