空竹 发表于 2022-7-19 16:32

记一次破解保卫萝卜金币过程

新手正在学习阶段,有前辈给了一个游戏练手,保卫萝卜,就叫我改个金币,告知我:需要动一下脑。


游戏为保卫萝卜1.0.6版本,百度一下就有得下载。

一.发现有检测
不就是改个金币,和改植物大战僵尸的阳光有个弔区别?
这样想着,开了游戏,CE,设置目标进程...
直接搜索金币,果然搜索到了,顺手找个基址。(Luobo.exe+105E68+74)

然后我问前辈,就这?

前辈:小老弟,你修改下金币数字看看再说。

于是我加了个0,如图

然后游戏就寄了{:1_909:},看来是有检测...


二.搞清是什么检测
重新来过,查找是什么指令改写地址,打了一个怪,出来个add指令

显示反汇编,段如图

显然,在add语句里,eax是【打怪获得金币的数量】,是金币地址。
再看下面程序要做什么,mov指令将金币数值存入eax,然后dec指令使eax减一,最后在用mov指令将eax赋值给,

做到这里,我已经猜到这个检测大概是怎么样的了,上图2个地址要相差1,不然检测机制就会认为你作弊,导致游戏关机。
我的修改,只修改了金币数量,没有修改金币数量效验的地址(esi+EC),
那么接下来就是想办法干掉这个检测了。

三.过检测
对esi+ec查访问
找到了,从红框里面的代码看出来的...
(加了1,"复位了",明显是要去比较了,这里我猜想后面会有cmp和je)

果然。
je是等于才跳,直接je改成jmp强跳,检测成功过了



综上所述,现在直接改金币,游戏终于不会闪退了。

空竹 发表于 2022-7-19 20:41

说明一下,这个是电脑版的,保卫萝卜beta,版本1.0.6

lizooo 发表于 2022-7-20 11:30

kickbirds 发表于 2022-7-20 10:55
能不能分享一下文件

百度搜索就能找到官方安装版,CE咱坛子里有,没有修改版,因为是基于内存修改的,不会做成内存修改器{:301_998:}

Saniq 发表于 2022-7-20 17:07

lizooo 发表于 2022-7-20 11:30
百度搜索就能找到官方安装版,CE咱坛子里有,没有修改版,因为是基于内存修改的,不会做成内存修改器{:30 ...

好直接插个眼{:1_886:}

li8523 发表于 2022-7-19 18:30

感谢楼主的分享

syz17213 发表于 2022-7-19 19:12

不错,学习一下

大方 发表于 2022-7-19 19:12

谢谢楼主分享,我试试,有问题请教你

dishiye 发表于 2022-7-19 19:17

谢谢楼主分享,不错不错,最近刚好有想到这个

不言谢c 发表于 2022-7-19 19:18

吓我一跳,我还以为,是保卫萝卜 4 !!!

aland52 发表于 2022-7-19 19:53

为什么是PC版

lc6 发表于 2022-7-19 20:13

挺不错的学习了

zixudaoxian 发表于 2022-7-19 20:16

为什么是PC版

EchoChao 发表于 2022-7-19 20:18

保卫萝卜竟然有PC版本
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 记一次破解保卫萝卜金币过程