软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
COMMAND.COM的破解.(有关DIR /S/A的BUG.)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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





相关文章

相关软件