中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-30 16:25
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [原创]xcopy.exe/xcopy32.exe/xcopy.mod初探 查看 10,106 回复 38
楼 主 [原创]xcopy.exe/xcopy32.exe/xcopy.mod初探 发表于 2006-07-21 20:57 ·  中国 山西 太原 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
xcopy.exe/xcopy32.exe/xcopy.mod初探

测试环境
1、D6(VirtualPC下的MS-DOS6.22)
2、D7(VirtualPC下的MS-DOS7.10)
3、HX(VirtualPC下的MS-DOS7.10下的HX DOS Extender)
4、D8(VirtualPC下的WindowsME启动盘)
5、98(VirtualPC下的Windows98Se)
6、XP(WinXPsp2);

测试样本
1、98的xcopy.exe/xcopy32.exe/xcopy.mod,来自Win98SE中文版(OEM)CD;
2、ME(WindowsME)的xcopy.exe/xcopy32.exe/xcopy.mod,来自];
3、D7的xcopy.exe,来自];
4、HX支持的xcopy.exe,来自];
5、XP的xcopy.exe,来自%systemroot%\system32\;
6、D6的xcopy.exe,来自DOS\;

通过使用fc对样本进行相似度验证,综合来自]的信息,各样本的相似性归纳如下:

1、95/97(Win95OSR2)的xcopy增加了xcopy32.exe,98/ME再增加了xcopy32.mod,XP则又向D6回归,只保留了全新的xcopy.exe;
2、98/ME的同版本的xcopy.exe/xcopy32.exe内容完全一致,98与ME版本之间则略有差别;
3、95/97的xcopy.exe和98/ME的xcopy.exe/xcopy32.exe的大小完全一致(3878),内容略有差别;
4、95/97的xcopy32.exe和98/ME的xcopy32.mod大小相近(分别为40960/41472/41472/41472),内容相似;
5、D6/D7/HX/XP的xcopy.exe互相之间、与其他样本之间大小和内容都有较大差别(大小分别为16850/24560/17408/30720);

通过在相应平台下的实地测试,各样本的依赖性归纳如下:

1、95/97的xcopy.exe依赖于xcopy32.exe;
2、98/ME的xcopy.exe/xcopy32.exe依赖于xcopy32.mod;
3、D6/D7的xcopy.exe未发现显式依赖的文件;
4、HX的xcopy.exe依赖于hdpmi32.dll等HX DOS Extender的支持库;
5、XP的xcopy.exe依赖于msvcrt.dll/ADVAPI32.dll/KERNEL32.dll/NTDLL.DLL/ulib.dll/ifsutil.dll等库文件

通过使用UltraEdit的观察,各样本的结构特征归纳如下:

1、98/ME的xcopy32.mod同时具有可执行程序的MZ段和PE段,且两段中均有较长的代码;
2、D7的xcopy.exe没有PE段代码,其MZ段与98的xcopy32.mod的MZ段具有很高的相似度;
3、HX的xcopy.exe的MZ段代码很短,其PE段与98的xcopy32.mod的PE段具有很高的相似度;
4、XP的xcopy.exe为普通的32位PE程序,其MZ段代码很短,其PE段与其它样本有较大差异;
5、D6的xcopy.exe为普通的16位MZ程序,没有PE段代码,其MZ段与其它样本有较大差异;

通过在相应平台下的实地测试和UltraEdit的观察,各样本的功能特征归纳如下:

1、D6的xcopy.exe支持的功能开关有: ,不支持长文件名和隐藏、系统属性文件;
2、98的xcopy32.mod的MZ段支持的开关同1,但未在命令行帮助中列出,不支持长文件名和隐藏、系统属性文件;
3、ME的xcopy32.mod的MZ段支持的开关同2相比,增加了,不支持长文件名,支持隐藏、系统属性文件(但命令行帮助中仍注明不支持);
4、98/ME的xcopy32.mod的PE段支持的开关同1相比,增加了 ,但未在帮助中列出,支持长文件名和隐藏、系统属性文件;
6、D7的xcopy.exe的功能特征同3;
7、HX的xcopy.exe的功能特征同4;
8、XP的xcopy.exe支持的开关同4相比,增加了...] ,支持长文件名和隐藏、系统属性文件;

通过在相应平台下的实地测试,各样本的平台适应性归纳如下:
1、98/ME的xcopy32.mod改扩展名为.exe后,可在98/XP下正常运行;
2、HX的xcopy.exe,可在D6/D7/D8/98/XP下正常运行,但在以硬盘方式启动的D6/D7/D8下运行时会出现异常];
3、其他的xcopy.exe/xcopy32.exe仅在相同版本的平台下可以正常运行,其它平台均显示错误的版本提示“Incorrect MS-DOS version”;
4、XP的xcopy.exe在D6/D7/D8下运行仅显示无法运行的提示信息“This program cannot be run in DOS mode. ”;
5、XP的xcopy.exe在98下运行弹出对话提示“找不到所需的 .DLL 文件 - ULIB.DLL”

根据以上信息,可以推断得出以下结论:
1、95/97的xcopy32.exe和98/ME的xcopy32.mod均属于DOS/WIN双栖性可执行程序,可分别在16位DOS环境下和32位WIN环境下独立运行;
2、95/97的xcopy.exe和98/ME的xcopy.exe/xcopy32.exe均属于寄生性可执行程序,调用xcopy32.exe和xcopy32.mod的代码运行;
3、D7的xcopy.exe为98的xcopy32.mod剪除PE段后的修改而得;
4、HX的xcopy.exe为98的xcopy32.mod缩略MZ段功能代码后修改而得;
5、xcopy的长文件名仅由PE段代码提供,同时需要相应库文件的支持;
6、xcopy的版本检查限制仅存在于MZ段代码中,可以通过搜索十六进制串并替换为来解除;

权衡所有的xcopy版本,可以筛选出两个通用性和可用性都较强的版本:
1、ME的xcopy32.mod改扩展名为.exe并解除版本检查限制的版本,其优点是单一文件可独立运行,其缺点是在DOS下无法支持长文件名和PE扩展开关;此版本附件中已提供;
2、可在硬盘方式启动的DOS下运行的HX的xcopy.exe,其优点是支持所有的PE扩展开关和长文件名,其缺点是需要附加的库文件支持,文件体积较大;此版本需要Wengier兄进行修改后得到;

]
http://www.lagmonster.org/docs/DOS7/z-xcopy.html

File Name Dos Ver. Win Ver. Size Date Source
Xcopy.exe 7.0 Win95 3 878-1 11/07/95 win95_09.cab
7.1 Win95 (OSR2.x) 3 878-2 24/08/96 win95_14.cab
Win98 3 878-3 11/05/98 win98_43.cab
Win98 SE 3 878-3 23/04/99 win98_47.cab
Xcopy32.exe 7.0 Win95 40 960 11/07/95 win95_09.cab
7.1 Win95 (OSR2.x) 41 472-4 24/08/96 win95_14.cab
Win98 3 878-3 11/05/98 win98_43.cab
Win98 SE 3 878-3 23/04/99 win98_47.cab
Xcopy32.mod 7.1 Win98 41 472-5 11/05/98 win98_45.cab
Win98 SE 41 472-6 23/04/99 win98_51.cab


]

Exception 0D
EAX=00400000 EBX=0000008F ECX=00110000 EDX=00000000 ESI=00400080
EDI=00005504 EBP=00005516 ESP=00226FF8 EFL=00090246 EIP=00002F21
CS=0097 (00110000,0000554F,00FB) SS=00BF (00000000,FFFFFFFF,CFF3)
DS=00BF (00000000,FFFFFFFF,CFF3) ES=00BF (00000000,FFFFFFFF,CFF3)
FS=00E7 (00400040,00000FBF,00F3) GS=0000 (********,********,****)
LDTR=0020 (FF809000,00000FFF,0082) TR=0018 (000066A8,00000067,008B)
ERRC=0000 (********,********,****) PTE 1. Page LDT=00363467
GDTR=03FF:FF802400 IDTR=07FF:FF802800 PTE CR2=00000006
CR0=80000033 CR2=00227000 CR3=0035B000 CR4=00000200 TSS:ESP0=00000804
DR0-3=00000000 00000000 00000000 00000000 DR6=FFFF0FF0 DR7=00000400
LPMS Sel/Cnt=0087/0001 RMS=C776:0200 open RMCBs=0000/0000 ISR=0000
=FB E8 CA FE E8 E5 03 72 58 E8 9F 01
=0000 0000 0000 0000 ????
terminate (c)lient or (s)erver now?


]
http://www.cn-dos.net/forum/viewthread.php?tid=2134
http://www.cn-dos.net/msdos71/msdos71f.zip
http://zhenlove.com.cn/cndos/msdos71/dos71cd.zip

]
http://www.cn-dos.net/forum/viewthread.php?tid=19730
http://www.cn-dos.net/forum/attachment.php?aid=1147&checkid=2e046&download=1

]
http://www.cn-dos.net/forum/viewthread.php?tid=21695
http://zhenlove.com.cn/cndos/soft/doscp.zip
附件
PA_Xcopy.zip (19.95 KiB, 下载附件所需积分 1 点, 下载次数: 149)
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2 发表于 2006-07-21 21:20 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
无语...实在是佩服...佩服...
3 发表于 2006-07-22 03:23 ·  中国 广东 广州 广东金万邦科技投资有限公司(新一代数据中心)IDC机房(BGP)
高级用户
★★★
积分 972
发帖 420
注册 2004-05-16 00:00
22年会员
UID 24467
性别 男
状态 离线
同感
平生进退如飙风
4 发表于 2006-07-22 07:15 ·  中国 安徽 宿州 泗县 电信
银牌会员
★★★
积分 1,339
发帖 595
注册 2004-05-26 00:00
22年会员
UID 25306
性别 男
来自 安徽 宿州
状态 离线
Willsort兄真是个有心人。佩服!
5 发表于 2006-07-22 08:07 ·  中国 广东 清远 联通
初级用户
积分 62
发帖 25
注册 2006-04-27 01:01
20年会员
UID 54520
状态 离线

]
Quote:
Exception 0D
EAX=00400000 EBX=0000008F ECX=00110000 EDX=00000000 ESI=00400080
EDI=00005504 EBP=00005516 ESP=00226FF8 EFL=00090246 EIP=00002F21
CS=0097 (00110000,0000554F,00FB) SS=00BF (00000000,FFFFFFFF,CFF3)
DS=00BF (00000000,FFFFFFFF,CFF3) ES=00BF (00000000,FFFFFFFF,CFF3)
FS=00E7 (00400040,00000FBF,00F3) GS=0000 (********,********,****)
LDTR=0020 (FF809000,00000FFF,0082) TR=0018 (000066A8,00000067,008B)
ERRC=0000 (********,********,****) PTE 1. Page LDT=00363467
GDTR=03FF:FF802400 IDTR=07FF:FF802800 PTE CR2=00000006
CR0=80000033 CR2=00227000 CR3=0035B000 CR4=00000200 TSS:ESP0=00000804
DR0-3=00000000 00000000 00000000 00000000 DR6=FFFF0FF0 DR7=00000400
LPMS Sel/Cnt=0087/0001 RMS=C776:0200 open RMCBs=0000/0000 ISR=0000
=FB E8 CA FE E8 E5 03 72 58 E8 9F 01
=0000 0000 0000 0000 ????
terminate (c)lient or (s)erver now?


7月17和21日的HX DOS Extender我也碰上同样的问题,而且是在vm中的虚拟光驱启动dos,问题出现在运行7za的时候,改用前版本的Hx dos Extender,问题解决。
6 发表于 2006-07-22 19:06 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re SXBG:

感谢你所提供的信息,我的测试中使用的HX是6月14日的版本,不知你使用的是哪个版本?是否可以上传以供测试。另外,据Weniger熊提供的消息,5月14日前的版本,对xcopy32的支持难以保证。


不行,那些我已试过发现都不行,包括HX下。Win9x中所带的支持长文件名的XCOPY32现在倒是可以在HX下运行(而且还是我向其作者提出后才能运行正常的)。



HX DOS Extender的最新测试版(2006.5.14更新)现在又有不少进展,比如Win32 Console版的UPX 2.0及其压缩过的程序、支持长文件名的Win9x中的XCOPY32等等都可以正常运行了,因此试试它应该还是不错的,你的Win32 Console程序通过它很可能也能在纯DOS下直接运行。以下是其作者提供给我的HX最新测试版下载地址:

http://www.japheth.de/Download/hxrtd.zip
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
7 发表于 2006-07-22 19:47 ·  中国 广东 清远 联通
初级用户
积分 62
发帖 25
注册 2006-04-27 01:01
20年会员
UID 54520
状态 离线
其间版本不少,我只保留了7月15日的,这个版本和之前的几个版本运行7za.exe都没有问题。
附件
HXRT.rar (108.94 KiB, 下载附件所需积分 1 点, 下载次数: 49)
8 发表于 2006-07-23 12:37 ·  加拿大 Bell
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
Originally posted by SXBG at 2006-7-22 07:47 PM:
其间版本不少,我只保留了7月15日的,这个版本和之前的几个版本运行7za.exe都没有问题。


是HDPMI 3.07x的问题,用之前的版本(比如那张DOS启动盘中的文件)就可以了。
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

9 发表于 2006-07-23 15:29 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
专业~~~PFPF


都是高级用户在回帖,寒~~

[ Last edited by electronixtar on 2006-7-23 at 15:33 ]

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
10 发表于 2006-07-23 17:43 ·  中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re SXBG & Wengier:

起初的测试就是在挂载doscp.img引导的VPC中,后来的测试中,是使用VPC的VHD硬盘先引导成功后再挂载doscp.img,结果测试失败了。

7月15日的版本也已作了测试,仍然有同样的问题。

后来,使用实机硬盘引导至DOS后再测试,成功了。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
11 发表于 2006-08-03 15:03 ·  中国 广西 南宁 电信
新手上路
积分 8
发帖 4
注册 2006-08-02 13:46
19年会员
UID 59677
性别 男
状态 离线
佩服...佩服...
12 发表于 2006-08-06 01:07 ·  中国 上海 浦东新区 电信
初级用户
积分 54
发帖 19
注册 2006-07-31 11:15
19年会员
UID 59547
状态 离线
willsort和Wengier你好!
我需要在DOS下能复制长文件名文件的xcopy,但是http://cndos.l009.com/soft/doscp.zip这网站我上不了。请问可以发到我邮箱吗?
harvardcookie@163.com。谢谢!!
13 发表于 2006-08-06 03:43 ·  加拿大 Bell
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
Originally posted by troylees at 2006-8-6 01:07 AM:
willsort和Wengier你好!
我需要在DOS下能复制长文件名文件的xcopy,但是http://cndos.l009.com/soft/doscp.zip这网站我上不了。请问可以发到我邮箱吗� ...


没必要个别发送邮箱吧?下载地址已改为:
http://zhenlove.com.cn/cndos/soft/doscp.zip
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

14 发表于 2006-08-06 08:33 ·  中国 广东 广州 荔湾区 电信
初级用户
积分 54
发帖 19
注册 2006-07-31 11:15
19年会员
UID 59547
状态 离线
To: Wengier
已经下载了,十分感谢!!
15 发表于 2006-08-06 13:13 ·  中国 上海 浦东新区 电信
中级用户
★★
论坛第一菜鸟
积分 361
发帖 166
注册 2006-04-15 13:23
20年会员
UID 53870
状态 离线
咿?楼主是怎么查看 32位的寄存器的啊?
Diskette Operating System
论坛跳转: