看看下面的光盘加密吧,或许有帮助:
-------------------------------------------
你可以把文件藏在光盘的隐藏目录中,
隐藏目录无法用DIR/A或浏览器看到,
只能用完全路径才能访问到(就像跳舞毯光盘无法复制到硬盘上一样)
具体原理如下:(你需要一定的刻录知识)
在每个目录或档案前面都有一段说明或记录,第几个 byte 到第几个 byte 是记录什么都有一定的规定。各位可以在 ISO 档内找到您要的目录(档案)名後,由此名字往前开始算,第一个 byte 就是上表的第 33 个 byte。同理,倒数第二到第五个 bytes 就是上表的第 29 到 32 个 bytes 的地方。而所有的数字当然都要用十六进位表示。
制作一个 ISO 档本文的 ISO 档 (又叫 Image 档) 是以 Easy CD Pro 所制作的, 用别的软体可能会不太一样.制作的方法请看以下图示 :把资料轨准备好, 设定档名规则可为 ISO 9660 或 Joliet 皆可. 最後烧录时设定为存成 Image 档, 而不是烧进光碟. 不过要把一片空白片放进烧录机才可以, 不管是不是要直接烧录. 目录记录区举例说明假设有一个 ISO 档,里面有一个目录,叫 "TEST". 这里需要Norton Utility (8.0 版以前) 的 Diskedit.exe , 或是 UltraEdit 也可以, 来找 ASCII 字串: "TEST",首先会找到两个像这样的地方: (但这不是我们要的位置)再往下找就会再看到一个像这样的地方:就是这里!我们来看看从 "TEST" 开始,回头算起的 33 个 bytes。
(就目录而言其它 ISO 档应该也是差不多要找三次才是要改的位置,不过读完本篇後您就会判断那个位置才对了。而档案的话仅找一次就可以到达我们要改的地方。)
其中最後的 54 45 53 54 就是目录名 "TEST",倒数第一个 byte 是 04,就是第 33 个 byte "Length of File Identifier",在这里 "TEST" 一共占了四个Bytes,所以是 04。
再看看倒数第 15 到 21 个 bytes,也就是表一中第 19 到 25 个 bytes 的位置,这里是记录该目录建立的日期和时间。其中 62 08 0E 换算成十进位就是 98 08 14 也就是日期是 1998 年 8 月 14 日。
再看看第 11 到第 18 个 bytes ,"Data Length" ,如果是个 档案 的话,这就是该档案的大小 (File size)。如果是个 目录 的话,则一律是 00 08 00 00 00 00 08 00 ,即 2048 bytes,也就是一个目录名就要占了一个 sector。
再看看开头第 3 到第 10 个 bytes 的位置: 1A 00 00 00 00 00 00 1A ,其实就是: 1A 00 00 00。也就是此目录在 ISO 档中所占的位置的第一个 sector 的 Logical Block Address。
Joliet 及 ISO 9660 规则请注意:如果你是用 Joilet 档名规则制作 Image 档,档名及目录的记录区有两个位置,都必须修改,照本文件改的话会只改到一处,另一处没改到,因此,所制作的隐藏目录及超大档只在 do
S / Win 3.1 下才有效,在 Windows 95 底下都会原形毕露.如果用 ISO 9660 档名规则的话,只有一个记录区,可以用本文件的方法修改,在 Windows 95 底下也可以保持隐藏目录及超大档。
下图以 Easy CD Pro 为例, 显示 ISO 9660 及 Joliet 档名规则设定的位置。
底下先谈到用 ISO 9660 规则制作 ISO 档时的改法 :超大档案
我们在制造超大档案时就是改 "Data Length" 这个位置(把活动的游标放在档名的第一个字母上,向左按 23 次 ),把它改成我们要的数字,例如 2 giga bytes,那么在 dir 那片光碟时就会出现一个 2 giga 的档案。
十进位跟十六进位数字要互相转换时, 您需要一个 Shareware: NUMCONV.EXE ,或者用 Win95 / 98 本身的小算盘 (改成工程型) 也可以 : 如下图:举例来说,要把档案大小改成 20,000,000 bytes,先转换成 16 进位,得到 : 1312D00 也就是01 31 2D 00,那么第 11 到第 18 个 bytes就要改成 :00 2D 31 01 01 31 2D 00
或者只改第 11 到第 14 个 bytes 也可以。如下:00 2D 31 01
如果该档案是个执行档,或许还可以执行。也可以 copy 到硬碟,因为 20,000,000也不算太大。这就是一个可以用的超大档案,可以用来伪装,以及某种程度的保护。
如果把它改成 2,000,000,000 会怎样呢?换算结果是 77359400 ,那么就改为:00 94 35 77 77 35 94 00或:00 94 35 77
这次不能执行也无法 copy 了。这就成了一个没有用的超大档案 (或垃圾档)。 隐藏目录
再看看倒数第 8 个 byte (把活动的游标放在目录名的第一个字母上,向左按 8 次),也就是第 26 个 byte : "File Flags"。一个 Byte 是八个 bit ,这八个 bit 每一个都是一个旗标,记录这个目录或档案的属性。从 0 到 7 的排列是这样的:7 6 5 4 3 2 1 0
目前是 02 ,也就是这样:0 0 0 0 0 0 1 0
即 bit 1 是 1。查表一得知当此 bit 为 1 时是表示这是一个目录。
Bit 0 是 1 时便给了它一个隐藏属性 (H attribute)。所以如果把它改成 03 ,就会变成隐藏目录,但是可以用工具程式或 dir/a 看到。像这样:0 0 0 0 0 0 1 1
我们要做的是那种用 DIR/A 或工具程式看不到,但是用 "CD 目录名" 却又进得去的那种隐藏目录。事实上笔者是用 "尝试错误法" (没有烧进 CD,而是用 EASY-CD MM/PRO FOR WIN3.1 所附的模拟功能,把 ISO 档模拟成 CD。) 发现从 04 到 07都可以变成这种隐藏目录。也就是至少 bit 2 必需是 1。像这样:0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1
所以要制作这种隐藏目录就是把这个 byte 改成 04 (or 05~07)。