HSIAO-YANG CHEN 发布的文章

3edd751egdfb4e7f6884e&690.jpg

上面的图是利用WIN2K/XP启动文件做的启动界面,附件1解压后得到V1.6.bin和llm18in1.BIN,V1.6.bin最多可以支持29个菜单,后者是LLM 18in1提取的。利用WIN2K/XP启动文件做多合一菜单,是国外传进来的,最早见到的是WIN2000三合一。所谓WIN2K/XP启动引导文件,就是用ultraiso工具打开一个微软原版WIN2K/XP的ISO,“启动光盘”--“保存引导文件”,就会提取到后缀为.BIF的文件,2K大小,改后缀名为.BIN也没关系。

用这种引导方式引导安装XP,兼容性非常好,没见过失败的,而且占用空间非常小,只要2K的大小。不过不支持汉字。

将分成几个部分来讲。菜单编辑、菜单数量控制、引导多个XP、引导BCDW,引导软盘镜像、引导Easyboot菜单、控制键(如重新启动、从硬盘启动、按任意键启动CD/DVD、关机)、引导另一个同类型的启动菜单文件等。。。

一、菜单编辑、菜单数量控制、引导多个XP

以V1.6.bin(因为支持的菜单数量较多)为例。

使用工具:UltraEdit-32

用UltraEdit-32 打开V1.6.BIN,看到以下界面。大框框内的内容是我们编辑的重点。
3edd751ex78115a5152fe&690.gif

0D 0A好多地方都有,要注意,不然分段就乱了。
3edd751ex78115e476528&690.gif
上面的图是利用WIN2K/XP启动文件做的启动界面,附件1解压后得到V1.6.bin和llm18in1.BIN,V1.6.bin最多可以支持29个菜单,后者是LLM 18in1提取的。利用WIN2K/XP启动文件做多合一菜单,是国外传进来的,最早见到的是WIN2000三合一。所谓WIN2K/XP启动引导文件,就是用ultraiso工具打开一个微软原版WIN2K/XP的ISO,“启动光盘”--“保存引导文件”,就会提取到后缀为.BIF的文件,2K大小,改后缀名为.BIN也没关系。

用这种引导方式引导安装XP,兼容性非常好,没见过失败的,而且占用空间非常小,只要2K的大小。不过不支持汉字。

将分成几个部分来讲。菜单编辑、菜单数量控制、引导多个XP、引导BCDW,引导软盘镜像、引导Easyboot菜单、控制键(如重新启动、从硬盘启动、按任意键启动CD/DVD、关机)、引导另一个同类型的启动菜单文件等。。。

一、菜单编辑、菜单数量控制、引导多个XP

以V1.6.bin(因为支持的菜单数量较多)为例。

使用工具:UltraEdit-32

用UltraEdit-32 打开V1.6.BIN,看到以下界面。大框框内的内容是我们编辑的重点。

0D 0A好多地方都有,要注意,不然分段就乱了。

插入编辑时,注意比如图中右边[P]位置要写的字比较多,可以插入5个字符,而[S]后面有空的地方,相应地要删除除5个字符,这样720h的 C位置以及此后的所有字符都不会移动偏差。

按CTRL+H键查看编辑的整齐不整齐,不整齐返回重新编辑。记住,编辑ABC...菜单时一定要在上图的右侧栏编辑。
3edd751ex781162de0249&690.gif
3edd751ex781166298c26&690.gif

有一根2G的双面内存,用memtest86+测试在1.4G左右的地方发现了损坏。内存损坏的地址位于高位内存,即为第二面内存。内存的所有参数信息是存放在内存上的一块小EEPROM存储器里,即为SPD信息。它保存着内存的逻辑特性,主板加电通过读取SPD信息,设置内存的可运行时序,确保物理内存运行在安全、可靠的环境下。下图的16进制码即为内存的完整信息。3edd751ex78109a7fcf72&690.jpg
通过Thaiphoon工具,我们很快的发现图中高亮部分是控制单双面的信息,‘0’为单面、‘1’为双面,只要把其改为‘0’,内存的容量便可减半为单面1G的内存条。至于这个软件的具体使用方法大家可以搜索下,配合winhex 修改。先下载Thaiphoon Burner v3,看能否识别你的机器,如果不能再下Thaiphoon Burner v5版本,后者的修改麻烦些,你必须先下个Thaiphoon Burner v3 SPD模板,再把由Thaiphoon Burner v5读取的内存SPD信息用winhex手工覆盖SPD模板。

ONES是款体积小巧(仅一个主程序和语言库文件,总共1M多)刻录功能丰富的刻录软件,它除了体积小、免安装、便携外,还是一款免费的刻录软件,即使是在条件有限的WinPE下也能轻松完成刻录功能。
由于ONES的免安装和便携性,也造成了一些尴尬的场景。当我们在一台机子上首次运行此程序,便会在本地计算机的注册表增加自动播放的记录项,下次放入光盘便会自动弹出ONES刻录软件的选项,可是问题是如果你已经把ONES.exe程序放到了其他的目录下了,操作系统就会提示你无法打开应用程序,势必造成了一些没用的垃圾选项,严重影响了人们对于完美的追求。那么修改方法有两种:1、直接移除ONES.exe对注册表中自动播放选项的读写;2、让ONES.exe每次都能重新进行注册表的覆盖,以确保ONES.exe路径的完整性。
修改工具就用OD动态分析,我们通过搜索“AutoplayHandlers”来到

0045E189  |.  8B2D 14E04900 MOV EBP,DWORD PTR DS:[<&ADVAPI32.RegCrea>;  ADVAPI32.RegCreateKeyA
0045E18F  |.  56            PUSH ESI
0045E190  |.  8D4424 0C    LEA EAX,DWORD PTR SS:[ESP+C]
0045E194  |.  50            PUSH EAX                                ; /pHandle
0045E195  |.  68 E8194A00   PUSH ONES.004A19E8                      ; |Subkey =     "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\HandleCDBurningOnArrival"
0045E19A  |.  68 02000080   PUSH 80000002                            ; |hKey = HKEY_LOCAL_MACHINE
0045E19F  |.  FFD5          CALL EBP                                ; \RegCreateKeyA
0045E1A1  |.  85C0          TEST EAX,EAX
0045E1A3  |.  8B1D 1CE04900 MOV EBX,DWORD PTR DS:[<&ADVAPI32.RegSetV>;  ADVAPI32.RegSetValueExA
0045E1A9  |.  75 22        JNZ SHORT ONES.0045E1CD
0045E1AB  |.  8B4C24 0C    MOV ECX,DWORD PTR SS:[ESP+C]
0045E1AF  |.  6A 00        PUSH 0                                  ; /BufSize = 0
0045E1B1  |.  68 E0E54900   PUSH ONES.0049E5E0                      ; |Buffer = ONES.0049E5E0
0045E1B6  |.  6A 01        PUSH 1                                  ; |ValueType = REG_SZ
0045E1B8  |.  6A 00        PUSH 0                                  ; |Reserved = 0
0045E1BA  |.  68 E0194A00   PUSH ONES.004A19E0                      ; |ValueName = "Zulu2"
0045E1BF  |.  51            PUSH ECX                                ; |hKey
0045E1C0  |.  FFD3          CALL EBX                                ; \RegSetValueExA
0045E1C2  |.  8B5424 0C    MOV EDX,DWORD PTR SS:[ESP+C]
0045E1C6  |.  52            PUSH EDX                                ; /hKey
0045E1C7  |.  FF15 20E04900 CALL DWORD PTR DS:[<&ADVAPI32.RegCloseKe>; \RegCloseKey
0045E1CD  |>  8D4424 0C    LEA EAX,DWORD PTR SS:[ESP+C]
0045E1D1  |.  50            PUSH EAX

观察下结构发现这段代码刚好完成了一次 HandleCDBurningOnArrival 注册表的注册,路径 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\HandleCDBurningOnArrival、表名Zulu2、表值为空,现在只要破坏掉这些数据结构就可以使HandleCDBurningOnArrival失效,但是这种修改方法还是有些不足之处,我们难以预料堆栈的平衡,修改的地方偏多,还是找找入口地址,我们继续往上看


0045E150  /$  81EC 08010000 SUB ESP,108
0045E156  |.  A1 C0AC4B00   MOV EAX,DWORD PTR DS:[4BACC0]
0045E15B  |.  33C4          XOR EAX,ESP
0045E15D  |.  898424 040100>MOV DWORD PTR SS:[ESP+104],EAX
0045E164  |.  813D 28EC4D00>CMP DWORD PTR DS:[4DEC28],834
0045E16E  |.  7D 17        JGE SHORT ONES.0045E187
0045E170  |.  33C0          XOR EAX,EAX
0045E172  |.  8B8C24 040100>MOV ECX,DWORD PTR SS:[ESP+104]
0045E179  |.  33CC          XOR ECX,ESP
0045E17B  |.  E8 2B2F0200   CALL ONES.004810AB
0045E180  |.  81C4 08010000 ADD ESP,108
0045E186  |.  C3            RETN
0045E187  |>  53            PUSH EBX
0045E188  |.  55            PUSH EBP
0045E189  |.  8B2D 14E04900 MOV EBP,DWORD PTR DS:[<&ADVAPI32.RegCrea>;  ADVAPI32.RegCreateKeyA
0045E18F  |.  56            PUSH ESI
0045E190  |.  8D4424 0C    LEA EAX,DWORD PTR SS:[ESP+C]
0045E194  |.  50            PUSH EAX                                ; /pHandle
0045E195  |.  68 E8194A00   PUSH ONES.004A19E8                      ; |Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\HandleCDBurningOnArrival"
0045E19A  |.  68 02000080   PUSH 80000002                            ; |hKey = HKEY_LOCAL_MACHINE
0045E19F  |.  FFD5          CALL EBP                                ; \RegCreateKeyA
0045E1A1  |.  85C0          TEST EAX,EAX

刚好发现 0045E16E |. 7D 17 JGE SHORT ONES.0045E187,跳转到 0045E187 |> 53 PUSH EBX 刚好是入口地址,现在只要稍加修改就行了把“JGE 0045E187”改成“NOP”就移除了这个自动播放的注册功能,改成“JMP 0045E187”就可以每次运行都重新注册了。是不是感觉更加绿色了呢?

exFAT文件系统是FAT32的升级版,解决了FAT32单文件4G的限制。与NTFS格式相比具有简单性,因为FAT系统不具备NTFS的安全性和权限管理而更适合被用于外部存储设备,如优盘、闪盘、超棒、记忆棒等闪存设备。在这些闪存设备中都存在着芯片颗粒的读写次数限制,这时FAT的简单性也就发挥了作用,简单性意味着没了的安全性和权限管理表,虽说每次读写都仅仅少了安全性和权限管理表的几次访问和记录,但是的的确确减少了读写的次数,因而提高了设备的使用寿命。如果把exFAT文件系统作为我们BT、电驴等分享式下载工具的下载分区,不也能达到减少磁头的读写次数,提高硬盘的使用寿命吗?
XP系统只要打KB955704补丁就可以支持exFAT格式了。作为一个系统爱好者,自然也得把自己的系统维护工具PE来个升级,通过解压补丁包、替换文件、增加注册表以达到增加exFAT文件系统的支持。大多情况下,我们很容易从网络资源中找到我们想要的一些东西,但有时却是不能的,虽然找到了经过资源精简的SHELL32.DLL,但是有一个问题困扰着我,那就是不能移除右键菜单的“自动播放(&P)”功能。在搜索未果的情况下,只能祭出反汇编动态调试工具OLLYDBG,把SHELL32.DLL载入反汇编分析,
1、通过搜素关键字“自动播放”找到

7D65F413  |.  50            |PUSH EAX                                ; |Buffer
7D65F414  |.  68 38210000   |PUSH 2138                              ; |RsrcID = STRING "自动播放(&P)"
7D65F419  |.  FF35 A4E5797D |PUSH DWORD PTR DS:[7D79E5A4]            ; |hInst = NULL
7D65F41F  |.  FF15 541D597D |CALL DWORD PTR DS:[<&USER32.LoadStringW>; \LoadStringW

2、这个函数,接着往上分析条件跳转的地方

7D65F3DD  |.  FF90 94000000 |CALL DWORD PTR DS:[EAX+94]
7D65F3E3  |.  81BD 34F1FFFF>|CMP DWORD PTR SS:[EBP-ECC],1000
7D65F3ED  |.  74 41        |JE SHORT SHELL32.7D65F430
7D65F3EF  |.  83BD 34F1FFFF>|CMP DWORD PTR SS:[EBP-ECC],1
7D65F3F6  |.  74 38        |JE SHORT SHELL32.7D65F430

3、从这里看可知跳转到地方是7D65F430,转到7D65F430看下

7D65F430  |>  53            |PUSH EBX                                ; /Arg4
7D65F431  |.  68 ACF7657D   |PUSH SHELL32.7D65F7AC                  ; |Arg3 = 7D65F7AC
7D65F436  |.  57            |PUSH EDI                                ; |Arg2
7D65F437  |.  68 44E9597D   |PUSH SHELL32.7D59E944                  ; |Arg1 = 7D59E944
7D65F43C  |.  8BCE          |MOV ECX,ESI                            ; |
7D65F43E  |.  E8 7D3DF9FF   |CALL SHELL32.7D5F31C0                  ; \SHELL32.7D5F31C0
7D65F443  |.  53            |PUSH EBX
7D65F444  |.  68 1451597D   |PUSH SHELL32.7D595114
7D65F449  |.  68 E4E9597D   |PUSH SHELL32.7D59E9E4                  ;  UNICODE "Extended"
7D65F44E  |>  8BCE          |MOV ECX,ESI                            ; |
7D65F450  |.  68 54365B7D   |PUSH SHELL32.7D5B3654                  ; |Arg1 = 7D5B3654
7D65F455  |.  E8 663DF9FF   |CALL SHELL32.7D5F31C0                  ; \SHELL32.7D5F31C0
7D65F45A  |.  68 04010000   |PUSH 104                                ; /Arg2 = 00000104
7D65F45F  |.  8D85 F4FDFFFF |LEA EAX,DWORD PTR SS:[EBP-20C]          ; |
7D65F465  |.  50            |PUSH EAX                                ; |Arg1
7D65F466  |.  8BCE          |MOV ECX,ESI                            ; |
7D65F468  |.  E8 D4FBFFFF   |CALL SHELL32.7D65F041                  ; \SHELL32.7D65F041
7D65F46D  |.  53            |PUSH EBX
7D65F46E  |.  8D85 F4FDFFFF |LEA EAX,DWORD PTR SS:[EBP-20C]
7D65F474  |.  50            |PUSH EAX
7D65F475  |.  57            |PUSH EDI
7D65F476  |.  68 70365B7D   |PUSH SHELL32.7D5B3670                  ;  UNICODE "shell\AutoRun\command"
7D65F47B  |.  E9 49020000   |JMP SHELL32.7D65F6C9
7D65F480  |>  68 50E4597D   |PUSH SHELL32.7D59E450                  ; /String2 = "ShellExecute"
7D65F485  |.  FFB5 38F1FFFF |PUSH DWORD PTR SS:[EBP-EC8]            ; |String1
7D65F48B  |.  FF15 E415597D |CALL DWORD PTR DS:[<&KERNEL32.lstrcmpiW>; \lstrcmpiW

4、很明显还是在执行自动播放的ShellExecute。返回步骤2,继续往上分析条件跳转语句,来到

7D65F3BB  |.  FF90 DC000000 |CALL DWORD PTR DS:[EAX+DC]
7D65F3C1  |.  85C0          |TEST EAX,EAX
7D65F3C3  |.  0F84 07030000 |JE SHELL32.7D65F6D0

5、这次是跳转到7D65F6D0,转到7D65F6D0看下

7D65F671  |.  85C0          |TEST EAX,EAX
7D65F673  |.  74 5B        |JE SHORT SHELL32.7D65F6D0
7D65F675  |.  53            |PUSH EBX
7D65F676  |.  68 00365B7D   |PUSH SHELL32.7D5B3600                  ;  UNICODE "Autorun"
7D65F67B  |.  EB 45        |JMP SHORT SHELL32.7D65F6C2
7D65F67D  |>  8B06          |MOV EAX,DWORD PTR DS:[ESI]
7D65F67F  |.  8BCE          |MOV ECX,ESI
7D65F681  |.  FF90 DC000000 |CALL DWORD PTR DS:[EAX+DC]
7D65F687  |.  85C0          |TEST EAX,EAX
7D65F689  |.  74 45        |JE SHORT SHELL32.7D65F6D0
7D65F68B  |.  68 F0355B7D   |PUSH SHELL32.7D5B35F0                  ; /String2 = "command"
7D65F690  |.  FFB5 38F1FFFF |PUSH DWORD PTR SS:[EBP-EC8]            ; |/Path
7D65F696  |.  FF15 601C597D |CALL DWORD PTR DS:[<&SHLWAPI.PathFindFi>; |\PathFindFileNameW
7D65F69C  |.  50            |PUSH EAX                                ; |String1
7D65F69D  |.  FF15 E415597D |CALL DWORD PTR DS:[<&KERNEL32.lstrcmpiW>; \lstrcmpiW
7D65F6A3  |.  85C0          |TEST EAX,EAX
7D65F6A5  |.  75 13        |JNZ SHORT SHELL32.7D65F6BA
7D65F6A7  |.  68 04010000   |PUSH 104                                ; /Arg2 = 00000104
7D65F6AC  |.  8D85 F4FDFFFF |LEA EAX,DWORD PTR SS:[EBP-20C]          ; |
7D65F6B2  |.  50            |PUSH EAX                                ; |Arg1
7D65F6B3  |.  8BCE          |MOV ECX,ESI                            ; |
7D65F6B5  |.  E8 87F9FFFF   |CALL SHELL32.7D65F041                  ; \SHELL32.7D65F041
7D65F6BA  |>  53            |PUSH EBX
7D65F6BB  |.  8D85 F4FDFFFF |LEA EAX,DWORD PTR SS:[EBP-20C]
7D65F6C1  |.  50            |PUSH EAX
7D65F6C2  |>  57            |PUSH EDI
7D65F6C3  |.  FFB5 38F1FFFF |PUSH DWORD PTR SS:[EBP-EC8]
7D65F6C9  |>  8BCE          |MOV ECX,ESI                            ; |
7D65F6CB  |.  E8 F03AF9FF   |CALL SHELL32.7D5F31C0                  ; \SHELL32.7D5F31C0
7D65F6D0  |>  FFB5 38F1FFFF |PUSH DWORD PTR SS:[EBP-EC8]            ; /String
7D65F6D6  |.  FF15 3016597D |CALL DWORD PTR DS:[<&KERNEL32.lstrlenW>>; \lstrlenW

6、这下心里有底了,已经不在Autorun代码的语段里了,返回步骤4,把"JE 7D65F6D0"改成"jmp 7D65F6D0",完工,测试下,OK,搞定……

刻录DVD盘,当文件大于2G的时候,Nero会提示NERO选文件时提示无法刻录这么大的文件,请转换格式。

这到底是怎么回事呢?怎么样才能解决这个问题呢?

其实这是一个格式的问题。

先介绍两种常用的光盘格式,ISO和UDF:

ISO-9660:又简称ISO,是由国际标准化组织在1985年制定的,当前唯一通用的光盘文件系统,任何类型的计算机都支持它,所有的烧录软件也都支持它。而且,若想让所有的CD-ROM都能读取烧录好的光盘,就必须使用ISO-9660或与其兼容的文件系统,其他的文件系统只能在CD-R或CD-RW上读取(有的还需要相应的烧录软件配合)。ISO-9660目前有两个标准:Level 1和Level 2。Level 1与DOS兼容,文件名采用传统的8.3格式,而且所有字符只能是26个大写英文字母、10个阿拉伯数字及下划线。Level 2则在Level 1的基础上加以改进,允许使用长文件名,但不支持DOS。

UDF是统一光盘格式(Universal Disc Format)的缩写。它采用标准的封装写入技术(PW,Packet Writing)将CD-R当作硬盘来使,用户可以在光盘上修改和删除文件。其基本原理是在进行烧录时先将数据打包,并在内存中临时建立一个特殊的文件目录表,同时接管系统对光盘的访问。被删除的文件或文件中被修改的部分其实仍存在CD-R光盘中,修改后的部分则以单独的数据块写入光盘,只不过在内存的目录表中,通过设定允许和不允许访问以及特殊链接等重定向寻址方法将数据重新组合,让系统找不到“老数据”,或让新数据替换老数据,从而达到删除与修改的目的。当用户结束操作后,便将新的目录表写回光盘并记下操作内容以便光盘日后的读取和数据的恢复(Undo)。这样一来,无疑大大增加了操作的便利性。而且在使用UDF时,一般都可以使用Windows中的资源管理器就能进行烧录,不会象使用ISO映像文件进行烧录时,每次完毕后都要进行关闭区段(Close Session)的操作,减少了烧录失败的机率。目前使用UDF技术的软件也都支持对CD-RW盘片的烧录,但在一些细节上有所不同,如删除的文件真的是被删除而不再是欺骗操作系统了。不过,在增加便利性的同时UDF也减少了有效存储空间,而且还要事先将CD-R与CD-RW盘片进行格式化,其中CD- RW盘片格式化后的容量要减少近100MB,所以大家要视情使用。另外,它还有一种派生的格式,即UDF/ISO,用UDF的技术制作ISO标准的光盘。

两者的区别:

ISO 不支持单个大于2G的文件
UDF 支持2G大小以上文件

ISO 兼容性好
UDF DOS和Win98系统不支持此格式,2000和XP以上系统和MAC系统支持

用NERO刻录大于2G文件的正确方法:

NERO中新建的时候,选DVD - 选择DVD/UDF - 选择“无多重区段(No Multisession)”
注明:选择“无多重区段(No Multisession)是为了保持DVD的最大兼容性,能在绝大多数光驱读得出的话。
那4中UDF模式中,选择什么最能保证刻录质量呢?
版本越低,对老版本windows兼容性越好...
刻录质量和文件系统无关
问:
现有一视频文件,HD WMV格式的,容量有3G,想把它刻录到光盘上保存。可是在nero中选择“DVD(ISO)”格式时,会提示容量超过2G,请用UDF格式刻录,可是用“DVD(UDF)”格式刻录后,把盘放进DVD光驱,又会提示不支持这种格式的光盘,请问有什么办法可以在DVD光盘上刻录容量超过2G的文件,同时系统又能够认出这种格式的光盘?
答:
在您的问题中,已经包含了问题的答案,要存储单个文件大小超过2G的文件到DVD光盘上,只需采用UDF文件格式刻录即可。至于刻录后要求系统能够识别,则必须考虑您所指的系统是什么操作系统,以Windows操作系统来说,Windows 98 支持读取 UDF 版本 1.02 的光盘数据,Windows 2000 可以支持读取 UDF 版本 1.02 和版本 1.50的光盘数据,Windows XP可以支持UDF 2.01版的光盘数据。在您使用Nero刻录DVD数据光盘之时,您可以通过刻录软件指定自己所要使用的版本。
如果事实上您已经选择了正确的版本,但是刻录的光怕年仍然未能被操作系统所识别,那么您才需要考虑另外的问题。考虑到您播放HD WMV格式,以Windows XP操作系统为例,在某些情况下是有可能造成系统无法识别出使用UDF文件系统的光盘的。首先,部分刻录软件采用的压缩等UDF扩展格式,由于不是正式的 UDF标准的一部分,有可能无法被Windows XP所识别。其次,如果光盘在原刻录该光盘的系统和上可读,在其他系统上不可读,则有可能光盘未执行关闭操作,仍处在打开等待追加数据的状态。另外,比较罕见但也不是不可能的是,有可能是这一台新的光盘驱动器存有故障或未能很好的支持UDF文件系统标准。最好,当然也不排除是光盘质量问题或刻录错误。
附注:什么是UDF文件格式?
UDF文件格式标准是由ISO组织下属的OSTA光学存储技术协会(Optical Storage Technology Association)于1996年制定的通用光盘文件系统,采用包刻录方式(Packet Writing),早期应用于CD时录,允许在CD-R/RW光盘上任意追加数据,为刻录机提供了类似于硬盘的随机读写特性,该标准进行数据刻录时不会出现因为缓存欠载或数据传输速度低于刻录速度而中断刻录过程,使盘片报废,支持Windows 9X/NT/2000/XP、MAC OS等操作系统,目前的应用已越来越广泛。
扩展ISO9660----Joliet和Romeo文件系统

在ISO9660中有一些限制,如字符设置限制,文件名长度限制和目录树深度限制.这些规定阻碍了用户复制数据到可被不同计算机平台读取的CD-ROM.因此,一些操作系统出售商已经以几种方式扩展ISO9660.
Joliet文件系统是扩展文件系统之一,由Microsoft提出和实现.它以ISO9660(1988)标准为基础.如果一CD是用Joliet文件系统创建,它只能在window 9x和window NT4.0 或更新版下读取,但是不能在任何其它平台上读取.在Joliet文件系统下,长文件名允许字符数最多为64,长目录允许数目最多为64.但是,文件名加它的完全路径总字符数不能超过120.
Romeo只定义为window9x长文件名,最多128字符。