COMMAND.COM的破解.(有关DIR /S/A的BUG.)

2000年08月24日 17:30:00
I know what you are thinking, "what does this have to
do with Windows?".

You may be aware of a "bug" in Command.com's "Dir/s"
(Directory Search for a file/s) which skips Hidden
sub-directories (common in "Windows" (95/98)). The "bug"
is not setting the proper attribute to include hidden directories.
I have modified "Command.com" for MS Dos 6.0 to 7.1 on 5
computers.

If you have a Hex Editor, enter the Search string (without quotes)
"8B D4 B9 10 00 B4 4E CD 21 72 2C E8 ".

Replace the 10 with 16. Also verify that the 4th byte past E8 is
also a 10 and replace that with 16 too. NOTE: if the 2nd 10
is Not present (SHOULD BE) at the 4th pos/byte past E8, then abort
the modification.

VERIFY PROPER FIX: (Note: Original Command.com will have ".BAK")

Use Dos's file compare (FC) for binary files and type (without
quotes) "FC/B COMMAND.BAK COMMAND.COM".

Dos V6.2 Command.com:
00003BD3: 10 16
00003BDF: 10 16

Dos V7.1 Command.com:
0000A2D6: 10 16
0000A2E2: 10 16

Use this fixed version of Command.com and replace the other/s
in other directories, then RESTART your PC. NOTE: If you don't
replace others, you may get a system halt with a "invalid
command.com" message due to a mismatch (checksum of the first
Command.com installed during startup does not match a reloaded
Command.com).

Disassembled: (Note: I do NOT have a full Command.com disassemble)

8BD4 MOV DX,SP
B91000 MOV CX,0010h ;Bug ( "Plain" Directory, but not hidden
(or one with "System" Attr set))
B44E MOV AH,4Eh ;Find first (sub-directory)
CD21 INT 21h
722C JB 3D07h ;JB if NOT found. NOTE: 3D07h depends where you
disassemble, but 72 2C is constant
E8FBFD CALL 3AD9h ;(3AD9h Dos 6.2 which is different in Dos 7.1)
B91000 MOV CX,0010h ;Bug part 2
MOV AH,4Fh ;Find next (sub-directory)
INT 21h

John Augustine




Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=3092


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本人收葳以久的 config.sys SMARTDRV.EXE HIMEM.SYS diskgen.exe DOS三个基本启动文件COMMAND.COM MS-DOS.SYS IO.SYS 启动DOS用到的文件 描  述:IO.SYS是dos环境控制输入输出的文件,不可以少。 COMMAND.COMWindows 9X中的DOS外壳程序(SHELL),较DOS 6.22仅增加了部分内部命令,没有更新的东西。   IO.SYS对COMMAND.COM的处理则有了根本改变,当Win 9X在CONFIG.SYS中加载EMM386.EXE驱动提供UMB时,COMMAND.COM的常驻部分装入HMA,暂驻部分装入UMB中(在DOS6.22中,COMMAND.COM只能将常驻部分装入HMA),这将为DOS程序提供更大的常规内存,也不需要反复从磁盘中恢复暂驻部分,有效地提高了系统性能。当然,如果没有加载EMM386.EXE,系统不提供UMB,COMMAND.COM的暂驻部分就只能象DOS6.22那样置于常规内存的高端。   DOS内部命令的程序代码存放在command.com文件中,它在DOS系统启动的时候随DOS的启动模块一起被调入计算机内存。 MSDOS.SYS是DOS的三个核心文件之一,另外两个是command.com、IO.SYS   MSDOS.SYS 在微软非NT内核的操作系统中经常可以看到它,具有只读、系统、隐藏三个属性,因此在WINDOWS中是看不到的,可以通过“文件夹选项”中“显示系统文件”和“显示所有文件”来显示它,如果改它的属性在WINDOWS中只能改只读和隐藏两个属性,不能改系统属性,但是可以在命令行形式下改attrib -s msdos.sys   MSDOS.SYS可以修改,但改坏了可能会导致系统无法启动,可以用记事本打开,内面是一些启动参数,如:开机时显示不显示菜单、开机时进行磁盘扫描吗、开机时显不显示LOGO等等。   1、MSDOS.SYS的作用   在Win 9X中,MSDOS.SYS变成了纯文本系统配置文件,用于控制Win的启动方式。可以在DOS模式下解除其特殊属性(只读、隐藏、系统),根据需要自行配置。MSDOS.SYS可以是空文件,甚至可以删除,当然此时系统只能以纯DOS方式启动,不能进入GUI系统。   不同方式形成的MSDOS.SYS默认内容不同,主要有四种,其中前三种方法形成的MSDOS.SYS文件无任何配置命令,几乎是空文件,仅保留一行注释,以说明该文件形成方式,这类文件多见于系统软盘中。不同的MSDOS.SYS内容如下:   1)Win安装时建立的系统盘 : ;Win95EBO   2)FORMAT /S建立的系统盘 : ;FORMAT   3)SYS A:传递建立系统盘 : ;SYS   4)建立系统时在硬盘上形成的MSDOS.SYS   系统硬盘中的MSDOS.SYS内容比较完整,包括必要的启动配置命令,文件长度必须大于1024 bytes,即占用两个以上磁盘扇区,这一要求在该文件中说明为保证兼容性,但从未见更深入的介绍,实际上文件小于1024 bytes对系统并无明显影响,该要求估计是为了保证系统与旧版DOS和Win 3.X兼容而提出的,这一点尚望行家指教。   用SYS向硬盘传送系统以修复启动文件时,将覆盖引导记录、IO.SYS和COMMAND.COM,MSDOS.SYS的内容保持不变,保证系统引导部分修复后,整个系统仍能正常启动,这一做法非常聪明。   2、MSDOS.SYS的配置参数   MSDOS.SYS由三小节组成,其各配置参数无顺序要求,内容如下:   [PATHS]   指定Windows的系统文件路径   WinDir=   指定Win 9X各系统文件及其子目录所在的目录   该路径必须包括注册表文件SYSTEM.DAT和Win 9X启动必需的驱动程序,如HIMEM.SYS等   WinBootDir=   指定Win 9X的GUI启动程序Win.COM所在的目录   HostWinBootDrv= 指定Win.COM所在的驱动器,不需冒号(:)   UninstallDir=   指定保存原系统的目录,便于自身删除时恢复原系统用   该参数出现在Win的升级版本中   [OPTIONS] 指定Windows的启动方式,/前的值为缺省值   LOGO=1/0   允许/禁止启动时显示Win 9X标志(LOGO)   屏蔽该画面有时可解决第三方内存管理程序造成的冲突   看到系统启动过程出现的提示信息,也使系统启动稍快,启动   启动时可用ESC键清除Win 9X标志,查看实模式启动信

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值