较windows98一个重要的优势在于,它能直接浏览zip格式文件,并且它还能将zip格式的图标改成类似普通文件夹的图标,很类似一款著名的软件zipmagic,而且只需点击鼠标右键,便能对它进行加密解密,而且还可以在不解密情况下,浏览压缩文件夹的名称,这大大提高windowsme对zip的竞争力,从而使windows几乎无所不能,大有一统天下之势。
然而,微软件并非万能,它的许多技术都是从其它公司买过来的,虽然它也拥有这些软件的技术,甚至已将它整合进操作系统,但不代表微软公司对之了如指掌。正如微软件公司买下pcanywhere一下,同样,微软件公司的windowsme中集成的压缩加密技术也可能是从其它公司买下的,只是微软好象没有宣称。同时我对微软件公司的产品存在一定的疑虑,其安全性一直令人怀疑,本文旨在探索windowsme自带压缩加密的安全性问题,以引起网友们注意。
一般的,微软件公司总习惯将自己的密码保存在系统中某一特定的文件中,如开机密码在“用户名.pwl”文件中,屏幕保护密码则在注册表中,那么压缩加密文件信息是如何保存的呢?
我先试着加密某一文件,如取名"我的文章.doc",先压缩,然后加密,密码为111。然后通过windows的搜索功能,查一查什么文件包含有“我的文章”这些字符,结果令我惊奇的发现,在c:\wimdows目录下(我的系统默认目录即为windows)有一个文件:dynazip.log,它清楚记录着我刚刚加密的全部信息。现摘录如下(;后面为我的注释):
dynazip zip diagnostic log - version: 3.00.16 - 12/06/01 15:28:38 ---;压缩加密程序的名称及版本信息,可能购买的是dynazip程序。包括压缩的详细时间信息
function: 5
lpszzipfile: 0x004d3a68 ;贮存密码重要信息
c:\windows\desktop\我的文章.zip ;加密文件的原位置
lpszitemlist: 0x005ae0e4 ;
"我的文章.doc";压缩前文件的名称
lpmajorstatus: 0x00000000 ;以下为加密全过程
lpmajoruserdata: 0x00000000
lpminorstatus: 0x00000000
lpminoruserdata: 0x00000000
dosifyflag: 0
recurseflag: 0
compfactor: 5
quietflag: 1
pathfortempflag: 0
lpsztemppath: 0x00000000
???
fixflag: 0
fixharderflag: 0
includevolumeflag: 0
deleteoriginalflag: 0
growexistingflag: 0
nodirectorynamesflag: 0
convertlftocrlfflag: 0
addcommentflag: 0
lpszcomment: 0x00000000
???
afterdateflag: 0
lpszdate: 0x00000000
oldaslatestflag: 0
includeonlyfollowingflag: 0
lpszincludefollowing: 0x00000000
???
excludefollowingflag: 0
lpszexludefollowing: 0x00000000
???
nodirectoryentriesflag: 0
includesyshiddenflag: 1
dontcompressthesesuffixesflag: 0
lpszstoresuffixes: 0x00000000
???
encryptflag: 1 ;表示加密,0表示解密
lpszencryptcode: 0x733b85d4 ;经加密算法处理后的密码
111 ;加密的原密码
lpmessagedisplay: 0x733ad937 ;经加密算法处理后显示的密码,与加密后密码不同,主要防止某些破解工具直接窃取密码,这是第二层算法加密,增加破解的难度
lpmessagedisplaydata: 0x00000000 ;防止密码被盗用
wmultivolcontrol: 0x0000
wzipsuboptions: 0x0000 ;压缩中是否包含下级文件夹
lresv1: 0x00000000
lresv2: 0x00000000
lpszextprogtitle: 0x00000000
???
lprenameproc: 0x733a39ff
lprenameuserdata: 0x005ae3f6 ;用户数据
lpmemblock: 0x004d6444
lmemblocksize: 20356
从以上信息可以看到,全部加密过程一目了然。如果对同一文件采取不同的密码加密,然后分析其加密算法,便能完全破解其加密方法。虽然采取了双层加密,即经加密算法加密后的密码再经过一层加密,以防止被某些软件的窃取和分析。其本意可能是好的,但由于微软件系统本身的缺陷,导致这一措施显得苍白无力。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器