花了一晚上的时间,仔细研究和思考了一下,可能结论和推断都有误,欢迎批评指正。
一、这是一种隐藏目录、文件的保护技术。在DOS、Windows操作系统下,使用dir,dir/ah 等命令,均不可查看。但可以使用 cd 命令进入被隐藏的某个目录下,进入后,使用不加任何参数的 dir 命令,均可查看文件。时间有限,我没有在MAC机或UNIX等操作系统下进行测试,有条件的用户可以试试。大伙请看下图(Windows XP 的“假”DOS系统下):
二、在使用隐藏技术的同时,文件使用了加密技术,因此即使进入该目录和查看文件,依然无法用 xcopy 等命令进行强硬复制。影像文件(*.dat等),虽然可以使用普通的 copy 命令进行复制,但和普通的音频CD一样,只能复制得到同名的、只有44个字节包含CDFS格式下属性信息的无用文件。可以参见上图。
二、隐藏目录和文件是通过修改磁盘文件属性的办法来实现的。44个字节的问题,是因为修改了磁盘属性(格式属性?)来实现加密和无法正确复制。
三、实现这种技术很简单,只需修改 DIRECTORY RECORD 记录组的字段信息,或干脆加入 CRC CODE 均可以。光盘中心那道明显的刻痕,无疑就是刻进了这样的信息。
四、DIRECTORY RECORD记录组,是 ISO 9660格式中所必须包含的,记录文件或目录的名称、属性(隐藏、存档、只读、系统),长度(文件容量),创建日期、时间等信息,如果修改了DIRECTORY RECORD记录组所表达的内容,就可以绕过DOS、WINDOWS等操作系统,实现保护文件(目录)的目的。
五、DIRECTORY RECORD记录组的各个字段含义:
1 Lenght of Directory Record(LEN_FI)
Directory Record(刻录目录)的长度,以字节为单位
2 Extended Attrbute Record Length 扩展属性记录的长度
3-10 Location of Extent 文件或文件夹所在的第一个Logical Block编号
11-18 Data Lenght 文件或文件夹的长度(检测文件大小的字节)
19-25 File Flags 文件或文件夹生产日期与时间
26 Recording Data and Time 文件属性(如隐藏、只读等)
27 File Unit Size
当文件为储存模型(InterLeave mode)时,用来记录文件单位的大小;如非交错储存时,则为00
28 Interleave Gap Size
当文件为储存模型(InterLeave mode)时,用来记录交错间隔的大小;如非交错储存时,则为00
29-32 Volume Sequence Number
这张光盘片在整套光盘集( Volume set)中的编号,若是单独一张则为1
33 Length of File Identifier( LEN_FI)
文件名称的长度(如TEMP文件共4个字母,折合文件名称长度为4,对应16进制为04)
34-34+LEN_FI File Identifier
文件过文件夹名称
由此可知,光盘中的隐含文件是由ISO 9660格式的DIRECTORY RECORD记录组中的11-26字节代表构成的。
六、如何修改DIRECTORY RECORD记录组的信息?任何一款16进制编辑器都可以,进行查找和直接修改。或干脆写出这些信息,在光盘上进行二次刻盘,就是那道刻痕。
七、原文件或原文件夹已在WINDOWS下设定为:“不具任何隐含属性的时”,在DIRECTORY RECORD记录组34字节的字库串左移8位前往至第26位字节的16进制代码与当文件或文件夹被设定为:“具WINDWS隐含属性的时”以及当文件或文件夹被设定为:“具Associated隐含属性的时”的代码值的变化。(设置了“具Associated隐含属性的时”,DIR的命令不设置也可以。)
文件的属性原代码(26字节) 文件夹的属性原代码 修改后的文件的属性原代码 修改后的文件夹的属性原代码
16进制编辑方式 00 02 01 03
2进制编辑方式 00000000 00000011 00000001 00000011
文件的属性原代码 文件夹的属性原代码 修改后的文件的属性原代码 修改后的文件夹的属性原代码
16进制编辑方式 00 02 04(05也可) 06(07也可)
2进制编辑方式 00000000 00000011 00000100 00000110
综上所述的总结:在被查找的字库串前8位的2位16进制码的实际含义为:
00:不具任何隐含属性的文件。(即在DOS下用DIR命令可显示的无隐含属性)
01:具WINDWS隐含属性的文件。(即在DOS下用DIR/AH命令可显示的隐含属性)
02:不具任何隐含属性的文件夹。(即在DOS下用DIR命令可显示的无隐含属性)
03:具WINDWS隐含属性的文件夹。(即在DOS下用DIR/AH命令可显示的隐含属性)
04:具Associated隐含属性的文件。(即在DOS下用DIR/AH命令不可显示的隐含属性)
05:既具Associated隐含属性,又有WINDOWS隐含属性的文件。(即在DOS下用DIR/AH命令不可显示的隐含属性)
06:具Associated隐含属性的文件夹。(即在DOS下用DIR/AH命令不可显示的隐含属性)
07:既具Associated隐含属性,又有WINDOWS隐含属性的文件夹。(即在DOS下用DIR/AH命令不可显示的隐含属性)
八、利用这一技术,除了能对光盘进行保护和加密之外,还可以在普通的CD光盘(650M)上刻录出高达 3.8G 的海量数据!办法:改变11-18字节的16进制代码,使WINDOWS操作系统从光盘的识别码中出错,注意:
A.如果不介意“容量大小”的详细要求,只要设定11-18字节中正文内容定义为FFFFFFFF即可,每个文件容量最大可达3.8G。
B.就3.8G的容量识别值已是8位16进制表达的极限值=二进制的8*8=64位二进制。
C.定义后超大的文件可能不能正常打开,只在保密时使用。
九、这一技术,非常实用,特别和我所从事的工作有关。对光盘数据安全管理,光盘文件加密等等,一直以来寻找一种良好的办法,没想到今天不经意之间的研究和思考,获得了最宝贵的启迪和顿悟。
十、如何破解,就是如何用电脑正确读取与复制。了解了保护原理,进行破解就简单多了。具体我没做更多测试,但绝对应该是可行的。比如使用一些工具软件。
1、使用 Disc Detective 进行破解。DOS 时代过来的朋友,大概对此都非常熟悉了,DD是用来测试 CD-ROM 的。不足:支持的文件名还是DOS下标准的83格式,唱文件名自动转换为~1,2之类。
2、使用Windows平台下的 Prassi CD Right!PlSS,该软件其实是一款功能强大的刻录软件,只不过国内很少人用它,一直默默无闻而已。用它做加密光盘的破解,实在不是它的主流功能。其破解的工作原理是光盘“轨道”(Track)读取方式,因此留在光盘上的任何痕迹都逃不过它的法眼。更可以进行虚拟还原与直接提取。
暂时写这么多,水平有限,敬请批评指正。本文撰写过程中,参阅了一些技术资料,得到了国内某破解高手的大力“教诲”,呵呵~再次一并致谢。
交流、讨论和砸砖,欢迎到MiTi论坛~地址:
http://www.miti2000.com/bbs