yjz1409276 发表于 2007-9-18 14:42:16

仙侣奇缘II去除文件自校验

【文章标题】: [原创]仙侣奇缘II去除文件自校验
【文章作者】: 小虾米
【作者邮箱】: [email protected]
【作者QQ号】: 124535772
【软件名称】: 仙侣奇缘II
【软件大小】: 1G
【下载地址】: 黑山总部
【加壳方式】: UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
【保护方式】: 自校验
【编写语言】: Borland C++ 1999
【使用工具】: OD,PEID
【操作平台】: 盗版Windows xp
【软件介绍】: 一款武侠爱情游戏
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
玩过仙侣II的人都知道,游戏的BUG是多如牛毛,今天是无敌,明天是刷经验,后天就是无限免死了,而这一切的实现方法仅仅是删除客户端的一个小小的文件。。。
在广大玩家斥责JS的同时,JS的技术人员略微的增加了一个文件校验的小伎俩。也就是当你删除任何一个游戏文件后再进游戏就会提示你:客户端文件不完整,请更新客户端。
本人已经不玩好长时间了,因为现在都是有钱人的天下,你技术再好,水平再高,装备垃圾,你就是菜!!!要想得到好装备?一天24小时在线做任务,48小时挂机,也没有RMB玩家升的快。况且现在也没几个人在玩了,老玩家都走的差不多了。我不会无聊到为了一个游戏而忘掉现实生活的残酷,虽然曾经是那样。。。
呵呵,话有点多了,没办法,谁让它是我的第一个网络游戏,也许是最后一个了吧。废话不多说,开工。
首先拿出PEID查壳:UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo,这个好脱,手动,ESP定律,2次内存断点法,PEID的插件都可以轻松的脱去。脱完后无法运行。再用ImportREC修复下输入表。OEP:00401474,RAV大小:1000。
修复后可以正常运行。一看是Borland C++ 1999写的。OK~。把脱壳后的文件载入OD(之前要随便删除一个游戏文件,因为我们要找自校验的出错窗口),F9运行后,弹出自校验窗口:客户端文件不完整,请更新客户端。点OD右上角的W按钮,找到该提示信息窗口的句柄,在004D64EC处下断。Ctrl+F2重新载入,F9运行后断在004D64EC处,F8单步跟踪,如果进入了系统的领空,就ALT+F9返回到程序领空,一直单步到这里:
00401E5A   /75 33         jnz   short 00401E8F
00401E5C   |6A 10         push    10
00401E5E   |68 48225500   push    00552248
00401E63   |68 29225500   push    00552229
00401E68   |8B45 FC         mov   eax, dword ptr
00401E6B   |E8 08DF0D00   call    004DFD78
00401E70   |50            push    eax
00401E71   |E8 A6F81400   call    <jmp.&user32.MessageBoxA>


00401E76   |8B15 D4105700   mov   edx, dword ptr           ; 1_.00571F64
00401E7C   |8B02            mov   eax, dword ptr
00401E7E   |E8 71F20C00   call    004D10F4
00401E83   |8B55 D4         mov   edx, dword ptr
00401E86   |64:8915 0000000>mov   dword ptr fs:, edx
00401E8D   |EB 1B         jmp   short 00401EAA
00401E8F   \6A 01         push    1
00401E91    6A 00         push    0
00401E93    68 F81A4000   push    00401AF8
00401E98    6A 05         push    5
00401E9A    6A 28         push    28
00401E9C    E8 E5F91400   call    <jmp.&winmm.timeSetEvent>
看到这句了吧?
00401E71   |E8 A6F81400   call    <jmp.&user32.MessageBoxA>这就是那个提示文件不完整的窗口
它是从 00401E5A这里跳过来的,所以我们要修改跳转条件,将:JNZ改为JZ后保存。
这样就跳过了文件自校验。现在无论你删除什么文件,都不会再弹出那个烦人的提示窗口了。双击进入游戏后输入帐号和密码,郁闷的是它要校验客户端版本和服务器版本是否一致,如果不一致就提示:客户端已经过期。无法进入游戏。
这里我觉得已经涉及到网络验证这一块了,现在的水平还达不到。哈哈~不管怎么说,自校验已经祛除了。剩下的就由各位大虾自由发挥去吧。。。
感谢仙侣里陪我走过风风雨雨的一年时光的朋友:130(烧钱的主~哈哈),锤子大哥,肚皮饿了,亲亲宝贝,老表,牙牙,云开,树叶子,隐匿者,燕子等等等等,虽然也有人不玩了,但是我还是祝你们天天快乐。。。
还要感谢:午睡的夜叉~给我的那一丝丝灵感,也许没有他的提示,我走不到今天这一步。
最后还要感谢看雪老师给我们提供的这么好的一个交流平台,以及那些无私奉献的前辈们。。。



--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年09月18日 14:16:27

phoenixkiller 发表于 2007-9-19 11:11:43

点OD右上角的W按钮,找到该提示信息窗口的句柄,在004D64EC处下断。
不明白

lxk836 发表于 2007-9-19 14:26:32

网络验证不好搞了,也不喜欢玩游戏.软件那么大硬盘都放不下:loveliness:

help 发表于 2007-9-20 22:36:40

不错,谢谢楼主!

kunkun1987 发表于 2007-9-22 02:41:58

还是不要弄游戏了~现在抓到没什么好结果

zongmin 发表于 2007-9-22 22:52:25

回复 5# 的帖子

抓到直接送监狱:lol:

金平湖秋月 发表于 2007-9-23 19:53:39

是不是金山更加容易点呀!

tang12347 发表于 2007-10-6 21:07:46

可能在客户端里,也能修改版本的吧.?问题就是在那里咯,!

honghe 发表于 2008-1-22 08:24:59

楼主厉害,向你学习了
页: [1]
查看完整版本: 仙侣奇缘II去除文件自校验