前段时间,为了怀念当年的生化酒店地图,特地去玩了一下1.0版本
老实说这还是我第一次玩1.0,早以前听说有毒,也就没去怎么在意了
下载了一个老外的版本,配置了一下,就开始使用了
bug是真的多,那个20个g的数据库简直是逆天,感觉是哪个私服的数据
删了删,还能凑活玩玩,哈哈
今天就随便挑几处bug,修复看看,哈哈~
比如:
bot昵称:显示扼扼街魄
这是韩文字符(EUC-KR / CP949 编码)在简体中文系统(GBK / CP936 编码)下被强行解析导致的典型乱码现象
左侧公告:会加载ie插件,网址失效,导致的ui错乱
无线电聊天消息:发送的消息前面会显示小地图的名称,看了很不自在
工具:x64dbg和易语言
由于三处修改的方法大抵相同,都在模块cshell.dll里面,我就不全讲了,随便再挑一个来讲
bot昵称:显示扼扼街魄
1.打开x64dbg----附加----crossfire.exe进程----搜索cshell.dll模块----当前模块----字符串

2.在搜索框中输入:扼扼街魄,得到两个地址:

地址=05DACBB6
反汇编=push cshell.5FCA954
字符串地址=05FCA954
字符串="扼扼街魄"
3.仔细看这两个地址:05FCA954就是我们要的目标内存地址,这个是一直变化的
4.因为在内存里,所以我们是无法应用补丁的,我们需要的是内存修改
5.点击内存布局----找到cshell.dll----得到基址05A90000
地址=05A90000
大小=00001000
方=用户模块
页面信息=cshell.dll
分配类型=IMG
当前保护=-RW--
初始保护=ERWC-

6.计算偏移量
相对偏移量 = 目标内存地址 - 模块当前加载基址
即05FCA954-05A90000=53A954
即53A954就是我们要的相对偏移量
7.相对偏移量是不会变得,固定了,有了这个我们就可以开搞了
8.这里还是再说一下,因为数据在内存里,所以我们是无法使用x64dbg应用补丁的。
脱壳就更别想了,壳比城墙还厚。用的是Themida/Winlicense (2.0.1.0-2.1.8.0),大名鼎鼎的Oreans 公司开发的商业强力加密壳,不要看是10多年前的,放在今天依然耐揍,哈哈
9.原理:通过“模块基址 + 固定偏移”定位到程序内存中的字符串,然后不断强制改写它。
或者使用ce,用一个“稳定的起点(模块基址)+ 一串偏移”去找到动态地址
上易语言开搞,当然Visual Studio的c++也是可不错了

10.之后可以编译成dll,使用注入器注入或者程序能带动的dll即可实现想要的结果
最后:以上方法仅供学习参考使用,如果你有更好的方法,不仿说出来一起探讨一下。哈哈
最后的最后:之前看到很多小伙伴在讲如何去除2.0的物品上限限制,我顺便去看了一下
添加上限后,服务端服务可以正常启动,客户端也能进的去,但是一进游戏bug就出现了。
本人能力精力有限,只能到这里了,恕我能为力
但是之后想想,既然原开发者在已知的基础上作了限制,定有它的道理。
比如:兼容普通玩家的旧电脑 旧配置 旧系统
如果你是开私服的,解开限制后,想必也需要增加成本来升级配置
也没这个必要了,过一段时间3.0就出来,到时不是想怎么加就怎么加
---------------------------------------------------------------------
可能是今天心情好,说了那么一大堆废话吧。哈哈
随意演示地址:http://23.95.213.54:1234/bandicam%202026-05-30%2010-30-38-984.mp4