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

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

2005-8-8 08:53
14860

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

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


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

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

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

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

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

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


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

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

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

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

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


奇迹啊...你还活着...
2005-8-8 13:57
0
雪    币: 556
活跃值: (2303)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
11
最初由 xIkUg 发布


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


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

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


我活着跟死了一样


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


我生不如死


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



失恋啥感觉?


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


深了..深了..
放羊去..
2005-8-8 20:21
0
雪    币: 3688
活跃值: (4242)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
22
不错,我喜欢。

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

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