首页
社区
课程
招聘
[旧帖] [原创]仙侣奇缘II去除文件自校验 0.00雪花
发表于: 2007-9-18 14:21 5159

[旧帖] [原创]仙侣奇缘II去除文件自校验 0.00雪花

2007-9-18 14:21
5159
菜鸟的第一篇文章,请大家多多指教
【文章标题】: [原创]仙侣奇缘II去除文件自校验
【文章作者】: 小虾米
【作者邮箱】: yjz1409276@163.com
【作者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 [ebp-4]
  00401E6B   |E8 08DF0D00     call    004DFD78
  00401E70   |50              push    eax
  00401E71   |E8 A6F81400     call    <jmp.&user32.MessageBoxA>

  00401E76   |8B15 D4105700   mov     edx, dword ptr [5710D4]          ; 1_.00571F64
  00401E7C   |8B02            mov     eax, dword ptr [edx]
  00401E7E   |E8 71F20C00     call    004D10F4
  00401E83   |8B55 D4         mov     edx, dword ptr [ebp-2C]
  00401E86   |64:8915 0000000>mov     dword ptr fs:[0], 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

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
2
抢到沙发了

好文,学习了~!
2007-9-18 14:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不知道重算CRC行不行。
2007-9-18 16:04
0
游客
登录 | 注册 方可回帖
返回
//