隐含文件的复制方法 张利生 1994-11-11 为此,笔者分析了XCOPY.EXE文件,发现XCOPY进行文件复制时,采用了4EH和4FH两个DOS功能调用进行匹配文件的搜索,其中入口参数CX的低位字节存放的正是文件的属性值。由于XCOPY.EXE程序中没有让隐含文件参加匹配,因而对这类文件不能进行复制。 下面是MS-DOS 3.30版本中XCOPY.EXE文件与“复制”有关的主要程序段: -U1406 1412 6134:1406 BAC703 MOV DX,03C7 6134:1409 8BOE9004 MOV CX, 6134:140D EB03 JMP 1412 6134:140F BAB104 MOV DX,04B1 6134:1412 E8D5FF CALL 13EA -U13EA 13FE 6134:13EA F606950401 TEST BYTE PTR ,01 6134:13EF 7404 JZ 13F5 6134:13F1 B44E MOV AH,4E 6134:13F3 EB02 JMP 13F7 6134:13F5 B44F MOV AH,4F 6134:13F7 80269504FE AND BYTE PTR ,FE 6134:13FC CD21 INT 21 6134:13FE C3 RET 弄清了问题的症结所在,自然也就有了解决的办法:只要将CX的低位字节改为07H,即可达到复制隐含文件的目的。 修改的方法如下: A>REN XCOPY.EXE XCOPY A>DEBUQ XCOPY -8100 3081 8B 0E 90 04 6134:1409 -E409 B9 07 00 90 -W -Q A>REN XCOPY XCOPY.EXE 经过以上修改的XCOPY命令,就可以复制具有隐含属性的文件了。笔者曾对几种版本的XCOPY.EXE文件进行过修改,均达到了预期目的,而且对于不同的版本,其修改方法是完全一致的,只是指令地址不同而已。(张利生)