首页
社区
课程
招聘
一个游戏的硬盘版制作示例(给新手们的)
2005-8-8 08:53 14030

一个游戏的硬盘版制作示例(给新手们的)

2005-8-8 08:53
14030
Sango.PowerBall.Chinese.Big5 免光盘制作

日期:2005年8月6日  破解人:XF[BCG][CCG][DCM]

-------------------------------------------------------------------------------------------------------------------------
『软件名称』:Sango.PowerBall.Chinese.Big5
『软件大小』:光盘版(650MB)
『下载地址』:^_*
『软件介绍』:一个类ZUMA的游戏,台湾做的,不知道为什么它就能做得这么大?
『保护方式』:必须插入光盘,否则不能运行。
『破解声明』:仅供对新手如何制作硬盘版游戏提供学习和研究之用,失误之处敬请诸位大侠赐教!
『破解工具』:W32dsm8.93、HIEW6.81
『破解过程』:

原程序Ball.exe,无壳,直接用W32dsm8.93,查找关键字符串“GetDriveTypeA”来到:

-------------------------------------------------------------------------------------------------------------------
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040B7B5(C)
|
:0040B7E5 0FBE0DE8724200          movsx ecx, byte ptr [004272E8]    //取出内存中一个字节,我用的光盘是Z盘,这里是 Z
:0040B7EC 51                      push ecx                          //压入堆栈
:0040B7ED 8D542434                lea edx, dword ptr [esp+34]

* Possible StringData Ref from Data Obj ->"%c:\"                    //取出变量值 %c:\,%c是用来被取代的变量
                                  |
:0040B7F1 6890744200              push 00427490
:0040B7F6 52                      push edx
:0040B7F7 E815040100              call 0041BC11                     //取代变量 %c:\ -> Z:\
:0040B7FC 83C40C                  add esp, 0000000C
:0040B7FF 8D442430                lea eax, dword ptr [esp+30]
:0040B803 50                      push eax

* Reference To: KERNEL32.GetDriveTypeA, Ord:0104h
                                  |
:0040B804 FF154C504200            Call dword ptr [0042504C]          //判断Z:是不是光盘
:0040B80A 83F805                  cmp eax, 00000005                  //如果是光盘,那么返回值就是5,硬盘则为4
:0040B80D 7420                    je 0040B82F                        //是光盘就跳,否则弹出插入光盘的提示
:0040B80F 8B0DC8B64200            mov ecx, dword ptr [0042B6C8]
:0040B815 6A00                    push 00000000
:0040B817 6A00                    push 00000000
:0040B819 6A10                    push 00000010
:0040B81B 51                      push ecx

……以下代码省略…………

分析完了后就开始动手了,首先分析一下[004272E8]这里的Z的来源,是从注册表呢,还是从设置文件里来的呢?

--------------------------------------------------------------------------------------------------------------------
* Possible StringData Ref from Data Obj ->"TRUETECH.CFG"
                                  |
:0040B7B7 68EC734200              push 004273EC
:0040B7BC 6A05                    push 00000005
:0040B7BE E8FD740000              call 00412CC0
:0040B7C3 A1C8B64200              mov eax, dword ptr [0042B6C8]
:0040B7C8 83C408                  add esp, 00000008
:0040B7CB 6A00                    push 00000000
:0040B7CD 6A00                    push 00000000
:0040B7CF 6A10                    push 00000010
:0040B7D1 50                      push eax

* Reference To: USER32.PostMessageA, Ord:01DEh
                                  |
:0040B7D2 FF1574514200            Call dword ptr [00425174]
:0040B7D8 5F                      pop edi
:0040B7D9 5E                      pop esi
:0040B7DA 5D                      pop ebp
:0040B7DB 33C0                    xor eax, eax
:0040B7DD 5B                      pop ebx
:0040B7DE 81C43C030000            add esp, 0000033C
:0040B7E4 C3                      ret

……以下代码省略…………

上面就有一个TRUETECH.CFG,这个好象是设置文件吧,用HIEW看看,果然,第一个开始的三个字节就是Z:\,直接用HIEW改为:.\,还有一个字节怎么办,就直接改为16进制的00吧。

接下来,要改00427490这个里了。我们同样用HIEW将Ball.exe里的427490处的%c:\改为.\后面的用两个16进制的00写入。

最后,将0040B80D 7420改为EB20,这样不管判断为什么我们都可以进入游戏了。^-^

测试了一下,弹出".\Anim\MOVIE.DAT"文件不存在的提示,将光盘上的全部目录都复制到硬盘上,拿掉光盘,点击运行,OK!

至此,破解完成,修改两个文件,共8个字节,硬盘版制作成功!

『总结』:
一般来说:KERNEL32.dll里的函数GetDriveTypeA是此类程序的关键。
GetDriveTypeA说明:
判断一个磁盘驱动器的类型
返回值
Long,如驱动器不能识别,则返回零。
有很多朋友都问我如何做免光盘版,看了以上的内容,相信聪明的你一定会举一反三,做出自己的免光盘补丁了吧。^_*

                                 <完>

感谢你看完这篇入门级的小东东。
顺便BS一下太阳猴,这个小子将偶以前的ID给注册了...
也顺便感谢BCG的Xy2000,CCG的SB,DCM的K头...等等这些好友(排名不分前后)。

-------------------------------------------------------------------------------------------------------------------------
有一种感觉总在失眠时,才承认是相思
有一种缘分总在梦醒后,才相信是永恒
有一种目光总在分手时,才看见是眷恋
有一种心情总在离别后,才明白是失落
-------------------------------------------------------------------------------------------------------------------------

XF[BCG][CCG][DCM]
2005.8.6

写于一个台风来临之际,只因太空虚无聊,想起有些新人要求我给点做硬盘版的要求,于是就有了这个小东东。

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞7
打赏
分享
最新回复 (26)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ChenCn 2005-8-8 10:55
2
0
感谢你的文章,又可以学不少东西,台风?你也是浙江的把,在玉环登陆哦,偶这里影响也巨大。
雪    币: 81550
活跃值: (198069)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
linhanshi 2005-8-8 11:11
3
0
学习方法。
雪    币: 436
活跃值: (1211)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
baby2008 28 2005-8-8 11:13
4
0
浙江老乡专用贴,我来报到
雪    币: 2763
活跃值: (3322)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
china 5 2005-8-8 11:34
5
0
谁让你不注册了,我K,你想要回去,我还给你这个鸟人,我就纳闷,怎么台风就没把你刮跑了呢。

听说xy让台风刮到日本去了,生活那个凄惨啊,你也去帮忙吧。

顺便说一下,把游戏给我老人家传一份来。
雪    币: 436
活跃值: (1211)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
baby2008 28 2005-8-8 11:51
6
0
楼上看不懂得说
雪    币: 240
活跃值: (105)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
脱壳请教 1 2005-8-8 11:57
7
0
我也来报道,偶也是浙江的呀
雪    币: 225
活跃值: (160)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
XF[BCG] 1 2005-8-8 13:25
8
0
最初由 china 发布
谁让你不注册了,我K,你想要回去,我还给你这个鸟人,我就纳闷,怎么台风就没把你刮跑了呢。

听说xy让台风刮到日本去了,生活那个凄惨啊,你也去帮忙吧。

顺便说一下,把游戏给我老人家传一份来。


法克,原来你还在啊,早上还有人说你和老婆去北京玩去了呢。。。

xy没有吹走,早上还黑暗地让我干活。。。Flelm地东东。。。

顺便提一下,游戏会传到XF FTP,你老人家就自己受累一下,自己下载吧。^_*
雪    币: 436
活跃值: (1211)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
baby2008 28 2005-8-8 13:51
9
0
BCG的兄弟转移主战场到Pediy来了?
雪    币: 110
活跃值: (220)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
xIkUg 9 2005-8-8 13:57
10
0
最初由 china 发布
谁让你不注册了,我K,你想要回去,我还给你这个鸟人,我就纳闷,怎么台风就没把你刮跑了呢。

听说xy让台风刮到日本去了,生活那个凄惨啊,你也去帮忙吧。

顺便说一下,把游戏给我老人家传一份来。


奇迹啊...你还活着...
雪    币: 496
活跃值: (2228)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
loveboom 53 2005-8-8 14:09
11
0
最初由 xIkUg 发布


奇迹啊...你还活着...


ni bu ye shi ma,qi ji,fa sheng le,ni ye hai huo zhao
雪    币: 111
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
window 1 2005-8-8 14:15
12
0
大家都还活着...还好...
雪    币: 2763
活跃值: (3322)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
china 5 2005-8-8 14:22
13
0
5555,我忘了你的破FTP的帐号了。

我活着跟死了一样
雪    币: 122
活跃值: (107)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
狗剩 1 2005-8-8 14:44
14
0
学习一下。
btw:两个人在这么多人前暧昧。太阳猴去TZ找他算了
雪    币: 122
活跃值: (107)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
狗剩 1 2005-8-8 14:45
15
0
最初由 china 发布
5555,我忘了你的破FTP的帐号了。


我活着跟死了一样


我生不如死
雪    币: 325
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
nbw 24 2005-8-8 15:22
16
0
最初由 狗剩 发布


我生不如死


失恋啥感觉?
雪    币: 122
活跃值: (107)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
狗剩 1 2005-8-8 15:34
17
0
最初由 nbw 发布



失恋啥感觉?


心比器官要硬
深了
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
yuqli 2 2005-8-8 16:19
18
0
学习,学习,再学习
雪    币: 49
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
pendan2001 4 2005-8-8 16:43
19
0
雪    币: 380
活跃值: (912)
能力值: ( LV9,RANK:770 )
在线值:
发帖
回帖
粉丝
kyc 19 2005-8-8 18:28
20
0
喜欢游戏的破戒
雪    币: 250
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
qiweixue 19 2005-8-8 20:21
21
0
最初由 nbw 发布
失恋啥感觉?


深了..深了..
放羊去..
雪    币: 2763
活跃值: (3322)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
china 5 2005-8-9 22:56
22
0
不错,我喜欢。

发现光盘里有秘密,都看完了,然后精简出原版大小光盘压缩为75M,不压缩112M左右吧。

雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
aki 2 2005-8-10 09:12
23
0
硬盘代码为4吗?
雪    币: 243
活跃值: (175)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
lee 3 2005-8-10 11:03
24
0
支持!!!
雪    币: 214
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gcf 2005-8-12 18:17
25
0
很好啊,我以前就没有搞懂硬盘版的动画是怎么判断的,现在算是学到一个方法了,以前做的硬盘版都是没有动画的,汗~~~~~~~~~
游客
登录 | 注册 方可回帖
返回