首页
社区
课程
招聘
[原创]破解《抗日-血战上海滩》,实现免CD.
发表于: 2005-1-22 12:59 11971

[原创]破解《抗日-血战上海滩》,实现免CD.

2005-1-22 12:59
11971
今天从朋友那里拿了个《抗日-血战上海滩》的游戏,当然是D版的了,安装后开始游戏,居然提示要插入光盘,真垃圾~~~~

本想做个光盘镜象文件吧,但一看硬盘的空间又不够了,算了,还是自己破吧~~~~

一看是国产游戏,感觉还简单一些了~~~~

拿出W32Dasm加载,搜索请“插入《血战上海滩》CD”,居然没有找到,只找到有一个“cdFile”真郁闷~~~~

那就看看他到底是要检测光盘呢,还是要读光盘上的数据呢?

拿出Filemon开始监视光盘,运行游戏后马上退出了,查看Filemon记录,发现游戏要读取以下目录文件
\autorun\zh-cn\epie.JPG   
\data_cn\title.bmp   
\preconfig\options_l.ini   
\AutoRun.exe  
\setup.dll

(怎么读这么多?真讨厌~~~~)

再看看对驱动器卷标有没有关联,把这几个要读取的文件copy到硬盘上做了一个光盘镜象文件,不是很大,才几百KB,卷标随便起了一个,用虚拟光驱加入并运行游戏,发现可以玩了,看来和光盘的卷标没有联系了。

我又用Ollydbg打开了程序,在00401645处显示有cdFile字符

00401640  |. 68 C0735B00    PUSH shanghai.005B73C0         ;  ASCII "file_count"
00401645  |. 68 B8735B00    PUSH shanghai.005B73B8         ;  ASCII "cdFile"
0040164A  |. 8D4C24 34      LEA ECX,DWORD PTR SS:[ESP+34]
0040164E  |. E8 AD230000    CALL shanghai.00403A00
00401653  |. 84C0           TEST AL,AL
00401655  |. 75 1B          JNZ SHORT shanghai.00401672

在TEST指令后紧跟JNZ指令,不用说一定有猫腻,在00401655处设置断点运行,没有发现错误提示,我又断点设置到00401657处运行,程序中断在0040181A,弹出错误提示,在Ollydbg右下角发现以下内容:

0012FDCC   00000000  |hOwner = NULL
0012FDD0   00B42810  |Text = "请插入《血战上海滩》CD"豉瘰呔T呐T??瘰
0012FDD4   00B405B0  |Title = "错误"血战
0012FDD8   00000000  \Style = MB_OK|MB_APPLMODAL

好了,什么也不用多说了,开始改吧~~~~~

我用RTA2修改了以下代码:

00401655  |. 75 1B          JNZ SHORT shanghai.00401672  

修改成:

00401655  |. 75 1B          JZ SHORT shanghai.00401672

保存并退出,运行游戏发现正常了,不用读取光盘了,至此破解算是结束了,最后再做一个文件补丁就OK了~~~~

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 209
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
好家伙,顶一下!
2005-1-22 14:47
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
初级文章不值得一顶~~~~
2005-1-22 17:41
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
4
最初由 爱国人士 发布
初级文章不值得一顶~~~~


初级文章更要支持  :D :D
2005-1-22 18:11
0
雪    币: 176
活跃值: (117)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
最初由 爱国人士 发布
初级文章不值得一顶~~~~


你来篇高级的吧
我也喜欢高级文章
2005-1-22 19:27
0
雪    币: 8221
活跃值: (3892)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
这游戏我以前就接触过,CD加密不难破,
如果再仔细反汇编分析下,你会发现该游戏的秘籍也在里面
-god_on -god_off 之类的
游戏启动的时候是85HZ的显示刷新率
我用的是液晶显示器最高支持75HZ,所以打开这游戏的时候屏幕跳得很厉害
后来我把它做成窗口化就可以玩了
哪位朋友想要可以E我,还有其他版本的,比如无敌,自动上弹什么的
这游戏当个DIY材料来练习不错,看朋友们的兴趣了
2005-1-22 20:46
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
长见识了。
谢谢
2005-1-23 04:40
0
雪    币: 300
活跃值: (412)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
8
自动上弹??这个没有找到

似乎有些秘笈:
按一下"`",就是1左面的键,就可以出现一个窗口,然后输入:

god_on
god_off

haveallweapon
ammonolimit
2005-1-23 11:51
0
雪    币: 296
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
9
在做魔兽的免CD时遇到一点困难,正在不断尝试。。。
2005-1-23 13:32
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这是一个国产游戏,加密和保护做的一点都不严密,新手可以拿来练练~~~比如我这样的~~~~~~~
2005-1-23 16:36
0
雪    币: 8221
活跃值: (3892)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
兄台误会了,我说的自动上弹不是游戏的秘籍,而是自己改里面的代码来实现的功能:)
2005-1-23 23:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不错,很佩服。
2005-1-24 09:06
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
最初由 sisess 发布
兄台误会了,我说的自动上弹不是游戏的秘籍,而是自己改里面的代码来实现的功能:)


你的意思是通过修改程序走向,使人物一出来就是无敌的

我在玩的时候还出现错误提示,你们玩的时候有吗?

我开始以为是我修改错了,但后来玩光盘版的也出现错误.

哎~~~

也许是游戏的BUG吧
2005-1-24 19:17
0
雪    币: 300
活跃值: (412)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
14
什么错误提示?

我的没有

关于自动上弹,是锁定子弹,还是当子弹没有的时候自动调用上弹的函数呢?

我查了一下,似乎不同枪支的子弹存在不同的地方,不知道处理的代码是不是一段
2005-1-24 19:35
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
:0042F375 8B0F                    mov ecx, dword ptr [edi]
:0042F377 49                      dec ecx                     ;修改成NOP
:0042F378 83FB02                  cmp ebx, 00000002

:00464281 8B8A74010000            mov ecx, dword ptr [edx+00000174]
:00464287 49                      dec ecx                            ;修改成NOP
:00464288 898A74010000            mov dword ptr [edx+00000174], ecx

你们试试看吧
2005-1-27 18:53
0
雪    币: 300
活跃值: (412)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
16
你这个是每次都不减子弹吧?最好应该是当子弹用完拉,之后,子弹自动加满才对
2005-1-27 19:06
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
哎~~~

惭愧了~~~

小弟也是初学破解,这也算是第一次玩了,还望各位高手指点呀~~~
2005-1-28 10:39
0
游客
登录 | 注册 方可回帖
返回
//