中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [原创]xcopy.exe/xcopy32.exe/xcopy.mod初探
« [1] [2] [3] »
作者:
标题: [原创]xcopy.exe/xcopy32.exe/xcopy.mod初探 上一主题 | 下一主题
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『楼 主』:  [原创]xcopy.exe/xcopy32.exe/xcopy.mod初探

[原创]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,来自[[求WinME DOS下的xcopy与xcopy32.mod]];
3、D7的xcopy.exe,来自[[纯MS-DOS 7.10完整安装版]];
4、HX支持的xcopy.exe,来自[[在DOS下有哪个版本可以把长文件名正常COPY]];
5、XP的xcopy.exe,来自%systemroot%\system32\;
6、D6的xcopy.exe,来自DOS\;

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

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支持的功能开关有:[/A | /M] [/D:date] [/P] [/S] [/E] [/V] [/W] [/Y | /-Y],不支持长文件名和隐藏、系统属性文件;
2、98的xcopy32.mod的MZ段支持的开关同1,但[/Y | /-Y]未在命令行帮助中列出,不支持长文件名和隐藏、系统属性文件;
3、ME的xcopy32.mod的MZ段支持的开关同2相比,增加了[/H],不支持长文件名,支持隐藏、系统属性文件(但命令行帮助中仍注明不支持);
4、98/ME的xcopy32.mod的PE段支持的开关同1相比,增加了[/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U] [/K] [/N],但[/V]未在帮助中列出,支持长文件名和隐藏、系统属性文件;
6、D7的xcopy.exe的功能特征同3;
7、HX的xcopy.exe的功能特征同4;
8、XP的xcopy.exe支持的开关同4相比,增加了[/EXCLUDE:file1[+file2][+file3]...] [/G] [/O] [/X],支持长文件名和隐藏、系统属性文件;

通过在相应平台下的实地测试,各样本的平台适应性归纳如下:
1、98/ME的xcopy32.mod改扩展名为.exe后,可在98/XP下正常运行;
2、HX的xcopy.exe,可在D6/D7/D8/98/XP下正常运行,但在以硬盘方式启动的D6/D7/D8下运行时会出现异常[[Exception 0D]];
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段代码中,可以通过搜索十六进制串[B4 30]并替换为[EB 1F]来解除;

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

[[Bob Watson's Home Page]]
http://www.lagmonster.org/docs/DOS7/z-xcopy.html

  Quote:

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]]

  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     
   [EIP]=FB E8 CA FE E8 E5 03 72 58 E8 9F 01                           
   [ESP]=0000 0000 0000 0000 ????                                      
terminate (c)lient or (s)erver now?

[[纯MS-DOS 7.10完整安装版]]
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

[[求WinME DOS下的xcopy与xcopy32.mod]]
http://www.cn-dos.net/forum/viewthread.php?tid=19730
http://www.cn-dos.net/forum/atta ... e046&download=1

[[在DOS下有哪个版本可以把长文件名正常COPY]]
http://www.cn-dos.net/forum/viewthread.php?tid=21695
http://zhenlove.com.cn/cndos/soft/doscp.zip

附件 1: PA_Xcopy.zip (2006-7-21 21:48, 19.95 K, 下载附件所需积分 1 点 ,下载次数: 149)


※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-7-21 20:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 2 楼』:  

无语...实在是佩服...佩服...

2006-7-21 21:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
darkradx
高级用户





积分 972
发帖 420
注册 2004-5-16
状态 离线
『第 3 楼』:  

同感



平生进退如飙风
2006-7-22 03:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chujiafu
银牌会员





积分 1329
发帖 591
注册 2004-5-26
来自 安徽 宿州
状态 离线
『第 4 楼』:  

Willsort兄真是个有心人。佩服!

2006-7-22 07:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
SXBG
初级用户





积分 62
发帖 25
注册 2006-4-27
状态 离线
『第 5 楼』:  



  Quote:
[[Exception 0D]]
  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     
   [EIP]=FB E8 CA FE E8 E5 03 72 58 E8 9F 01                           
   [ESP]=0000 0000 0000 0000 ????                                      
terminate (c)lient or (s)erver now?  

7月17和21日的HX DOS Extender我也碰上同样的问题,而且是在vm中的虚拟光驱启动dos,问题出现在运行7za的时候,改用前版本的Hx dos Extender,问题解决。

2006-7-22 08:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 6 楼』:  

Re SXBG:

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

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



  Quote:
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:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-7-22 19:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
SXBG
初级用户





积分 62
发帖 25
注册 2006-4-27
状态 离线
『第 7 楼』:  

其间版本不少,我只保留了7月15日的,这个版本和之前的几个版本运行7za.exe都没有问题。

附件 1: HXRT.rar (2006-7-22 19:47, 108.94 K, 下载附件所需积分 1 点 ,下载次数: 49)
2006-7-22 19:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 8 楼』:  



  Quote:
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和雨露,谢谢!)

2006-7-23 12:37
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 9 楼』:  

专业~~~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'>"
2006-7-23 15:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 10 楼』:  

Re SXBG & Wengier:

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

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

      后来,使用实机硬盘引导至DOS后再测试,成功了。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-7-23 17:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenwei450
新手上路





积分 8
发帖 4
注册 2006-8-2
状态 离线
『第 11 楼』:  

佩服...佩服...

2006-8-3 15:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
troylees
初级用户





积分 54
发帖 19
注册 2006-7-31
状态 离线
『第 12 楼』:  

willsort和Wengier你好!
    我需要在DOS下能复制长文件名文件的xcopy,但是http://cndos.l009.com/soft/doscp.zip这网站我上不了。请问可以发到我邮箱吗?
harvardcookie@163.com。谢谢!!

2006-8-6 01:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 13 楼』:  



  Quote:
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和雨露,谢谢!)

2006-8-6 03:43
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
troylees
初级用户





积分 54
发帖 19
注册 2006-7-31
状态 离线
『第 14 楼』:  

To: Wengier
    已经下载了,十分感谢!!

2006-8-6 08:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xjmxjm1234
中级用户

论坛第一菜鸟


积分 361
发帖 166
注册 2006-4-15
状态 离线
『第 15 楼』:  

咿?楼主是怎么查看 32位的寄存器的啊?



Diskette  Operating  System
2006-8-6 13:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: