Board logo

标题: [原创]xcopy.exe/xcopy32.exe/xcopy.mod初探 [打印本页]

作者: willsort     时间: 2006-7-21 20:57    标题: [原创]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]] www.lagmonster.org ...
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]]
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完整安装版]] www.cn-dos.net/forum ... www.cn-dos.net/msdos ... zhenlove.com.cn ... [[求WinME DOS下的xcopy与xcopy32.mod]] www.cn-dos.net/forum ... www.cn-dos.net/forum ... [[在DOS下有哪个版本可以把长文件名正常COPY]] www.cn-dos.net/forum ... zhenlove.com.cn ...
附件 1: PA_Xcopy.zip (2006-7-21 21:48, 19.95 K, 下载附件所需积分 1点 ,下载次数: 149)

作者: fastslz     时间: 2006-7-21 21:20
无语...实在是佩服...佩服...

作者: darkradx     时间: 2006-7-22 03:23
同感

作者: chujiafu     时间: 2006-7-22 07:15
Willsort兄真是个有心人。佩服!

作者: SXBG     时间: 2006-7-22 08:07
[[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,问题解决。

作者: willsort     时间: 2006-7-22 19:06
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最新测试版下载地址: www.japheth.de/Downl ...

作者: SXBG     时间: 2006-7-22 19:47
其间版本不少,我只保留了7月15日的,这个版本和之前的几个版本运行7za.exe都没有问题。
附件 1: HXRT.rar (2006-7-22 19:47, 108.94 K, 下载附件所需积分 1点 ,下载次数: 49)

作者: Wengier     时间: 2006-7-23 12:37
Originally posted by SXBG at 2006-7-22 07:47 PM: 其间版本不少,我只保留了7月15日的,这个版本和之前的几个版本运行7za.exe都没有问题。
是HDPMI 3.07x的问题,用之前的版本(比如那张DOS启动盘中的文件)就可以了。

作者: electronixtar     时间: 2006-7-23 15:29
专业~~~PFPF 都是高级用户在回帖,寒~~ [ Last edited by electronixtar on 2006-7-23 at 15:33 ]

作者: willsort     时间: 2006-7-23 17:43
Re SXBG & Wengier: 起初的测试就是在挂载doscp.img引导的VPC中,后来的测试中,是使用VPC的VHD硬盘先引导成功后再挂载doscp.img,结果测试失败了。 7月15日的版本也已作了测试,仍然有同样的问题。 后来,使用实机硬盘引导至DOS后再测试,成功了。

作者: chenwei450     时间: 2006-8-3 15:03
佩服...佩服...

作者: troylees     时间: 2006-8-6 01:07
willsort和Wengier你好! 我需要在DOS下能复制长文件名文件的xcopy,但是cndos.l009.com/soft/ ...这网站我上不了。请问可以发到我邮箱吗? harvardcookie@163.com。谢谢!!

作者: Wengier     时间: 2006-8-6 03:43
Originally posted by troylees at 2006-8-6 01:07 AM: willsort和Wengier你好! 我需要在DOS下能复制长文件名文件的xcopy,但是cndos.l009.com/soft/ ...这网站我上不了。请问可以发到我邮箱吗� ...
没必要个别发送邮箱吧?下载地址已改为: zhenlove.com.cn ...

作者: troylees     时间: 2006-8-6 08:33
To: Wengier 已经下载了,十分感谢!!

作者: xjmxjm1234     时间: 2006-8-6 13:13
咿?楼主是怎么查看 32位的寄存器的啊?

作者: SXBG     时间: 2006-8-17 21:24
To: Willsort 你还有6月14日(2.5)的版本吗?我发现新近的几个版本包括我现在用的2.6版都常常出现那个问题,而主页并不提供历史版本下载。如果论坛不能上传,发到我的邮箱吧(hsz890@msn.com),谢谢!

作者: Wengier     时间: 2006-8-17 23:59
Originally posted by SXBG at 2006-8-17 09:24 PM: To: Willsort 你还有6月14日(2.5)的版本吗?我发现新近的几个版本包括我现在用的2.6版都常常出现那个问题,而主页并不提供历史版本下载。如果论坛不� ...
现在2.7版都出了,我使用时并没有发现有这种问题呢。。

作者: SXBG     时间: 2006-8-18 22:50
不行呀,包括最新的测试版也一样,在virtual pc中用7z解压就会出现那个情况,而vmware却没有问题,莫名其妙呀。

作者: Wengier     时间: 2006-8-18 23:19
Originally posted by SXBG at 2006-8-18 10:50 PM: 不行呀,包括最新的测试版也一样,在virtual pc中用7z解压就会出现那个情况,而vmware却没有问题,莫名其妙呀。
那这是VPC自己的问题了,HX的文档中说过和VMware、Qemu等虚拟机兼容,从来就没有提到过VPC,所以有问题也是正常的,改用VMWare等虚拟机或在真实机中用就可以了。

作者: GOTOmsdos     时间: 2006-8-19 00:58
恩,这个工作很有意义! 不过,少了几个重要的程序: xcopy16.exe xxcopy.exe acopy.com (国人写的,挺好的,除了键入的目录不能是长文件名外,能完整复制长文件名,其他的程序总是丢三落四..) 我曾经试过MSDOS7.1下用XCOPY,XCOPY16和XXCOPY复制整个XP 可是总是少这少那的..

作者: Wengier     时间: 2006-8-19 03:25
DOS版的xcopy16和xxcopy16都是不支持长文件名的,不推荐。 acopy是直接存取磁盘的,方式跟其它的都不同,故使用起来感觉有点不太好,而且用法不太灵活(选项实在少得可怜)。 而我给的那个DOS启动盘中的xcopy可以完全正常复制中英文长文件名,复制起来不会有任何问题,而且功能很多。

作者: GOTOmsdos     时间: 2006-8-19 19:50
那个DOS启动盘中的xcopy 跟 98的XCOPY 不一样吗? 我用过 XCOPY ,可是,好象隐藏和系统文件总是不复制, 你这个行吗?

作者: Wengier     时间: 2006-8-19 21:39
Originally posted by GOTOmsdos at 2006-8-19 07:50 PM: 那个DOS启动盘中的xcopy 跟 98的XCOPY 不一样吗? 我用过 XCOPY ,可是,好象隐藏和系统文件总是不复制, 你这个行吗?
当然行的,你试试就知道了(加/H)。

作者: GOTOmsdos     时间: 2006-10-5 02:40
发现Wengier提供的 Xcopy 是WIN32 控制台吧? 能在纯DOS运行? 他需要辅助的一些库吗? 我来试试。。。

作者: Wengier     时间: 2006-10-5 10:23
Originally posted by GOTOmsdos at 2006-10-5 02:40 AM: 发现Wengier提供的 Xcopy 是WIN32 控制台吧? 能在纯DOS运行? 他需要辅助的一些库吗? 我来试试。。。
你如果试过用我那张启动盘启动就会发现当然能运行!

作者: kfjinyang     时间: 2007-4-12 00:32
无语...实在是佩服...佩服...

作者: frankwz     时间: 2007-4-14 10:03
看一下

作者: zhlzq     时间: 2007-4-15 12:19
实在是佩服...佩服...

作者: COSMIC0062     时间: 2007-4-19 02:09
学习了,谢!

作者: yinshi123     时间: 2007-5-3 17:50
很好,下一个

作者: ieee520     时间: 2007-5-14 13:09
精彩!!!!

作者: wentaowen     时间: 2007-5-16 13:14
几天的潜水学习确实感觉收获颇丰,感谢Wengier为我们提供的学习平台.

作者: griffingl     时间: 2007-7-3 23:15
在哪可以下载到7Z的DOS版呢?

作者: jacksonxu2007     时间: 2007-11-27 09:50    标题: ss

DDD

作者: limingqiu5021     时间: 2010-6-18 10:24
很好 很不错i

作者: ringlys0     时间: 2010-8-22 14:33
纯支持一下 。

作者: mini2324     时间: 2010-8-25 16:17
好详细啊!

作者: joymusic     时间: 2010-9-11 16:37
好文章

作者: sununs     时间: 2010-10-7 09:54
学习来了。。。