导航

加密光盘的极小镜像制作从入门到掌握

Posted on 2004-11-22 10:30  mahq  阅读(3310)  评论(1编辑  收藏  举报
现在很多软件厂商为了防止拷贝,防止盗版,都在光盘制作上使用了数据加密格式,就拿游戏来说吧,常见的游戏盘加密方式有SafeDisc、LaserLock、Star Force和SecuROM等.......

     尤其是SafeDisc(应用此技术的:EA的大部分游戏、三国志10繁体中文版等)和更令人头疼的Star Force(传说中的SF3,应用此技术的:仙剑的2款新作,依苏6等),这类游戏当推出的时候,通常不能象以前没有加密过的游戏光盘那样,使用免CD补丁,而需要在游戏时插入光盘(比如新上市的三国10繁体中文版,目前没有免CD,只有插入光盘

      很多人可能和我一样,出了什么新的游戏,都喜欢去尝试一下,如果都象上面那样,保留许多光盘的镜像在自己的电脑里。而一张游戏光盘动辄600M,长此下去,势必占用了大量宝贵的硬盘空间。

      那么,有没有什么方法,可以用较小的空间,保留游戏时必须的光盘镜像呢,当然有!您可能会说,压缩?不,比这更小,这就是本文要介绍的,制作极小镜像


开始介绍之前先来看一段资料

      常见的光盘防拷贝保护技术:

1、Cactus Data Shield:音乐CD保护技术,目前有CDS-100、CDS-200、CDS-300三个版本。
保护机制:常见的音乐CD保护技术,在光盘中加入了电子自动记录扇区以干扰CD-ROM在复制过程中的操作。

2、CD-Cops:数据光盘保护技术。
保护机制:在安装程序外加保护套,安装时验证密码(通常为8位)。
光盘特性:在安装目录有CDCOPS.DLL文件。

3、DiscGuard:数据光盘保护技术。
保护机制:光盘上的执行文件被加密,CD-ROM压片时被加入数字签名并且被映射到软件的序列号中,软件执行时将序列号与数字签名进行对照。
光盘特性:安装目录有IOSLINK.VXD和IOSLINK.SYS文件。


4、Dummy files:数据光盘保护技术。
保护机制:修改ISO与文件大小相关的代码创建超大的假文件,使光盘总容量显示为最大2GB,造成常见的650MB、700MB的CDR无法备份的假象。
光盘特性:显示光盘中有超大文件(700MB-2GB)。

5、SafeDisc:数据光盘保护技术,根据保护机制不同通常分为1.0、2.0-2.4、2.51以上三个版本。
保护机制:2.4之前的Safedisc保护光盘在压片时嵌入数字签名,早期的刻录机无法备份数字签名。2.51以后的Safedisc则采用了weak sector technology(弱扇区技术)。
光盘特性:光盘中有00000000.016、00000000.256、00000001.tmp等文件。


6、SecuROM(new):数据光盘保护技术。
保护机制:光盘压片时加入SecuROM电子指纹,程序运行时,光盘中的验证程序检验SecuROM电子指纹。
光盘特性:光盘上有CMS16.DLL、CMS_95.DLL、CMS_NT.DLL等文件。

7、TAGES:最新的数据光盘保护技术。
保护机制及光盘特性:不详。


8、Star Force:最新的数据光盘保护技术。
保护机制:原理类似于CD-Cops,但进行了改进。
光盘特性:不详
前言:            (完全是废话...可以跳过




     本文会由浅入深的介绍制作极小镜像的判断和制作过程。由于本人手头的光盘有限,所以不可能介绍到所有的加密方式,也或许我介绍的光盘根本无须用到什么极小镜像(比如马上先说到的nba2004,已经有完美的免CD),这只是用这张光盘来做个介绍而已,还请此中高手见谅

     OK,废话说完,下面开始主题:
入门篇:记录法...


制作对象

nba2004 原始光盘镜像 (2005我还没下



制作工具:

FileMon  (文件监控软件)

winiso    (光盘编辑软件)


制作过程

首先,打开FileMon,在volumes中,只选中光盘(否则无用的数据太多太乱)

第2步:不关闭filemon,放入原始的光盘镜像(654.75MB),运行游戏

第3步:进入游戏,运行一段时间(具体时间长短可以自己掌握,太短了记录不到完整的信息,太长了...那你就玩吧

第4步:运行一段时间后,退出游戏,回到filemon的窗口,现在我们来看看记录到的信息
 
第5步:只需要观察path项的内容,其他的不用管他,记住所有调用到的文件

第6步:
现在可以关闭filemon了,我们打开winiso(也许您有更好的选择,我只是用我熟悉的软件做个介绍)。

打开winiso后,打开nba2004的原版光盘镜像,然后把刚才记录下来的文件保存,其他的全部删除,然后选择“另存为”,制作出一个新的光盘镜像


我保存为NBANEW.iso


(注意,有的游戏会验证光盘名和vol,所以,最好使用和原光盘同样的信息)
第5步:只需要观察path项的内容,其他的不用管他,记住所有调用到的文件

第6步:
现在可以关闭filemon了,我们打开winiso(也许您有更好的选择,我只是用我熟悉的软件做个介绍)。

打开winiso后,打开nba2004的原版光盘镜像,然后把刚才记录下来的文件保存,其他的全部删除,然后选择“另存为”,制作出一个新的光盘镜像


我保存为NBANEW.iso


(注意,有的游戏会验证光盘名和vol,所以,最好使用和原光盘同样的信息) 
 
第5步:只需要观察path项的内容,其他的不用管他,记住所有调用到的文件

第6步:
现在可以关闭filemon了,我们打开winiso(也许您有更好的选择,我只是用我熟悉的软件做个介绍)。

打开winiso后,打开nba2004的原版光盘镜像,然后把刚才记录下来的文件保存,其他的全部删除,然后选择“另存为”,制作出一个新的光盘镜像


我保存为NBANEW.iso


(注意,有的游戏会验证光盘名和vol,所以,最好使用和原光盘同样的信息)

最后一步,检验极小镜像是否有效

由于游戏运行的时间长短,可能有的调用到的信息还没有保存下来,所以在这里必须验证

可以使用你喜欢的任意虚拟光驱软件将制作的极小镜像插入,运行游戏验证,我用的是Alcohol120%


经过验证,运行游戏一切正常,所以极小镜像是有效的,看看极小镜像的大小吧

原光盘大小:654.75MB

极小镜像大小:816KB


是不是小了很多

小技巧:


      以上介绍的是正版光盘镜像的制作方法,对于一些盗版的已经破解过的光盘镜像,还有一个比较投机取巧的方法,那就是,用winiso打开ISO,直接把光盘下的安装包、data、setup....等程序删除,然后把剩下看不懂的文件重新打包,也可以得到“极小镜像”


提高篇:中断法....


制作对象:

三国志10繁体中文版原版镜像



制作工具:

ClonyXXL  (检查光盘的加密格式)

Alcohol 120%   (虚拟光盘制作+使用工具)


制作过程:

第1步:用Alcohol 120% 装入原版光盘镜像,然后用ClonyXXL来检查光盘的结构

检查后得知,光盘的加密方式是:safedisc2.9

第2步,打开Alcohol 120%,选择左上角的“镜像制作向导”
第3步:左下角的数据格式选择对应的数据格式,这里我们选择safedisc2/3
第4步:
指定镜像的名称,和基础篇说到的一样,有的游戏会检查光盘的名称和vol,所以建议使用与原版一样的
这里我使用san10jx   san10极小
第5步:点击下一步,开始制作光盘镜像

这里需要注意的是,如果进度条走到100%,那么你得到的就是和原版镜像完全一样的一个镜像文件
而我们需要的是一个“极小镜像”,其实也很简单,制作过程中,随时点击右下角的取消,会弹出下面的对话框,问你是否中断复制,我们选“是”
然后紧接着会弹出第2个对话框

是否删除未制作完成的镜像文件,您也许会说删除

当然不....这个,就是我们需要的
“极小镜像”

下面会告诉您原理
中断法制作极小镜像的原理


safedisc格式的加密信息不同于其他格式,其他大多数格式的加密信息都在.mds中,而他在.df里,而位置,通常都在mdf的前 1000 磁区内

我们用中断的方法,只保存了前1000磁区的信息,骗过safedisc,就可以了

由于.mds没有加密信息,所以,更没有必要完全制作完毕,也没有必要用正版镜像的.mds文件替换了



注:1000磁区=2352乘1000=2352000 (字节)

所以,中断时的大小,应该大于这个数,否则很可能会失败


小技巧:

针对另一种常见的加密方式,SecuROM,同样比较多的用到上面的“中断法”

所不同的是,制作时多了一个步骤,检查DPM(如下图)

必须等到DPM检查完毕,再退出制作

另外,需要用原版的.mds文件,替换制作不完全的.mds(原版.mds很小,只有几K,可以叫别人发给你,或者自己制作)


进阶篇:  分割法....

通过上面对分割法的一些说明,我们可以知道:
safedisc格式的加密信息不同于其他格式,其他大多数格式的加密信息都在.mds中,而他在.df里,而位置,通常都在mdf的前 1000 磁区内

1000磁区=2352乘1000=2352000 (字节)

有的朋友可能会说,用手动中断的方法,取一个接近2352000 (字节)的大小,比较麻烦,有没有什么方法,可以直接选定为这个大小,从而得到真正意义上的“"极小"镜像”呢
由此问题,进入我们的进阶篇:分割法
制作对象:

同中断法,同样使用三国志10繁体中文版原版镜像



制作工具:


就一个,嘻嘻

hjsplit  : 文件分割软件....



肯定会有朋友问了...搞什么...那是文件分割软件...怎么能用来制作光盘镜像呢,嘻嘻,慢慢看
第1步,运行hjsplit.exe 第3步:

点击“开始”,会自动开始分割,一开始就可以结束了,因为我们只需要第1个块文件,软件不带“停止”功能,怎么停止就不用我教你了吧,

我手慢了,出来了5个,可以看到,每个的大小是2352KB

第2步:
选择“拆分”,在弹出对话框中选定原版的.mdf文件(原版大小为572MB)

在拆分文件大小中,输入我们刚才说过的,2352000 字节,注意单位是KB,所以我们输入“2352”

第3步:

点击“开始”,会自动开始分割,一开始就可以结束了,因为我们只需要第1个块文件,软件不带“停止”功能,怎么停止就不用我教你了吧,

我手慢了,出来了5个,可以看到,每个的大小是2352KB

第4步:
把生成的NS-SAN10GM.mdf.001后面的.001去掉

然后把原版镜像的NS-SAN10GM.mds复制到同个文件夹下,刚才说过,.mds都很小,这个只有3K
最后一步:
用虚拟光驱载入,进游戏测试

测试通过

这就是最小的“极小镜像”了



掌握篇        对付 SF3 加密   < 一 >


      看了上面的几节制作,也许有的朋友会觉得简单了些,的确,目前来说,最难对付的加密方式就是传说中的SF3了,新推出的很多游戏光盘都使用这种加密方式,下面,我们就来介绍一下SF3极小镜像的2种制作方式



注 : SF3=STARFORCE 3



制作对象:

永远的依苏6 中文版

(我手头SF3加密的只有这张光盘了,正在下仙剑的4CD...迟些时候一起分析)




2种方法介绍一下,首先是同上面介绍过的切割法

制作工具:

hjsplit   (上面有过介绍了)

制作前,先再强调一次SF3的加密检查讯息存放格式

SF3 和 Securom 的加密检查讯息类似,是包含在mds文件里,所以我们首先需要正版镜像的.mds文件,这个很小,几K

然后就是.mdf文件,SF3的格式,需要取前面100个磁区的大小,也就是说


2352乘100 = 235200 bytes     (是SAFEDISC格式的1/10)









下面开始制作

第1步:

打开hjsplit.exe,选择原版镜像的.mdf文件,分割大小选择上面所说的 235200 bytes ,注意单位是KB,所以我们填 235   



第2步:点击分割,开始制作

第3步:
和上面的操作一样,马上关闭程序,只保留生成的第1个文件,文件大小为235K

第4步:
将文件YS6_CD2.mdf.001后面的.001去掉,然后复制原版镜像的YS6_CD2.mds文件到同一目录下

第5步:

使用Alcohol 120%,将光盘插入,运行游戏测试


注意看图片上面的光盘镜像大小

0.23MB




掌握篇        对付 SF3 加密   < 二 >


      上面的方法,我们得到了一个0.23MB的极小镜像,其实有时候,还可以做的更小,下面针对依苏6这个游戏,来介绍一种比较另类的方法


      说他另类,是因为这样制作出来的镜像绝对是最小的,可是,不是一定能成功,或者说,不是针对每一个游戏都能成功,比如依苏6我测试可以,仙剑就不行。

      不过由于制作方法不难,所以有兴趣的朋友可以都试试看



不说废话,下面开始




制作目标:

永远的依苏6中文版镜像


制作工具:

WINISO  

Alcohol 120%
第1步:

打开WINISO,直接点另存为,制作一个空的ISO文件

第2步:
运行Alcohol 123%

将刚才得到的46KB的YS6.ISO插入虚拟光驱
第3步:

点击左上角的“镜像制作向导”
第4步:

在下方的数据类型中选择StarForce1/2/3

第5步:

为了和刚才的区分,新取镜像名称为YS6

点击开始制作

第6步:

弹出对话框让你选择DPM侦测速度,这里反正是空镜像,无所谓,选最快好了

第7步:

报告DPM分析错误......空镜像不错误才怪

总之....制作完成

看一下制作生成的2个文件




YS.mdf         67KB

YS.mds          1KB


最后,我们用原版镜像的.mds替换生成的.mds  .........


看清楚哦,刚才是1K,现在是4K


用Alcohol 120% 装入.....运行游戏验证......PASS


这就是SF3可能达到的最小镜像了,一共71K,比免CD程序都小


总结篇               总结...但愿不是讨论的终结.....


简单的介绍了几种常见的加密光盘格式的极小镜像制作方法,下面简单的对几种方法做一个总结:

极小镜像使用的前提:

必须完整安装游戏(最大化安装)


极小镜像的制作:


入门篇:记录法...


      之所以用做入门篇,因为其实这才是制作极小镜像的唯一“正统”的方法,后面的方法,是建立在熟悉每个游戏调用的程序的基础上的......



提高篇:中断法....

      制作出来的镜像的质量取决与手快越快点取消,制作出来的镜像越小,其实,也就是越趋近于原版镜像.MDF  1000个磁区(sector)的大小2352000 bytes



进阶篇:  分割法....


      建立在熟悉各种加密方式的“加密检查讯息”存放位置的基础上,可以制作出理论上的“极小镜像”

      下面对各种加密方式的“加密检查讯息”存放位置做个说明:


       SafeDisc的检查在.mdf里,一般为mdf的前1000磁区内
      (2352*100=2352000 bytes)


       Starforce的检查则在.mds文件里,mdf一般需要100个磁区
      (2352*100=235200 bytes)

       Securom的检查也在.mds文件里,mdf一般需要100个磁区
       需要注意的是,Securom的.mdf一个磁区大小是 2448 bytes,而不是2352 bytes

       (2448*100=244800 bytes)


掌握篇        对付 SF3 加密  


      建立在熟悉上面的加密检查讯息的基础上,SF3其实也没那么可怕

      至于第2个另类的方法(空ISO做MDF,MDS),对于 Securom和Starforce同样适用,只是不一定每个游戏都通过,需要自己尝试