- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Windows95抖动图像
摘要该文剖析了Windows95的部分文件,给出了人们很感兴趣的用户定做启动徽标和关机图像的方法,并使其显示启动徽标抖动和变色。
一、引言
Windows95以更新更好的界面展现在用户面前,而给人印象最深的是表明其是彻底图形界面的引导及结束时的标志图形。Windows95使系统由图形引导启动并在图形界面中关闭,系统在显示微软启动徽标的同时进行初始化,在显示等待信息的同时完成系统退出并以一个图形化的提示信息结束系统工作。此外,Windows95还为旧DOS程序的运行设计了很好的图形化界面,从而使系统的整个工作过程完全可以脱离过去的命令行方式。本文介绍这些界面图形的定制和使启动封面图形抖动变色的方法。
二、Windows95的三幅界面图
Windows95用三幅图完成其初始化和关闭传递信息工作,即启动徽标、封底1、封底2。其中封底1和封底2的图形是两个256色的位图文件,名字分别为和,存放在Windows的工作目录下,负责这两个图形显示的程序分别是和,它们在打开相应的图形文件后分别作文件格式检查。
的检查段代码为:
-u3b683b83
0AF4:3B68813F424DCMPWORDPTR[BX],4D42
0AF4:3B6CF9STC
0AF4:3B6D75B9JNZ3B28
0AF4:3B6FBBCE40MOVBX,40CE
0AF4:3B72833F28CMPWORDPTR[BX],+28
0AF4:3B7575F5JNZ3B6C
0AF4:3B77837F0C01CMPWORDPTR[BX+0C],+01
0AF4:3B7B75EFJNZ3B6C
0AF4:3B7D837F0E08CMPWORDPTR[BX+0E],+08
0AF4:3B8175E9JNZ3B6C
0AF4:3B8360DB60
寄存器BX中装的是打开成功的文件首地址的偏移值,通过对比位图文件的首部结构,我们可以立即得到所打开的文件是一个非压缩、位面数是1、256色的位图图像文件。实际上文件确实是一个完整的位图文件,可以用Paintbrush编辑,它显示封底2的信息。因此我们可产生相应格式的位图文件取代,试验证明完全可行。
对也作类似处理,只是对位图标志域检查对比的部分语句不连续,其各项检查如下:
debuguserexe
-u5ada:abb8
5ADA:ABB8813F424DCMPWORDPTR[BX],4D42
-u5ada:abc4
5ADA:ABC4833F28CMPWORDPTR[BX],+28
-u5ada:abcb
5ADA:ABCB837F0C01CMPWORDPTR[BX+0C],+01
-u5ada:abd3
5ADA:ABD3837F0E08CMPWORDPTR[BX+0E],+08
其中寄存器BX中为打开的存储首址。由此可见,可以用相应格式的位图来取代用作封底1的显示。
值得注意的是,显示时自动按设定的屏幕分辨率来做全屏幕显示,对640×480、256色的屏幕,其位图大小最好设定为320×400像素。
三、启动徽标封面的定做方法
Windows95的封面没有独立文件形式的位图文件,这与对的处理和对的处理不同。笔者在剖析引导文件的过程中发现,Windows95的启动封面徽标是嵌入在引导文件中的,并经DBLSPACE压缩过,图像数据区长度为64KB。在笔者剖析的Windows95版本中,图像数据占据~344扇区,数据内部有多处DS标识,这是DBLSPACE压缩文件的标志,由于DBLSPACE是分段校验压缩文件,因此,即使此区内有一个字节的改动也会造成图像的大幅破坏。在上述中,图像显示执行
代码部分起始于以DBLSBIN$标志的地方并占据110-112扇区。由于DBLSPACE的压缩文件很复杂并分段校验,使我们不能像对的那样通过改动组合文件或重编的部分代码来定做启动封面,但可以在中以Logo=0来消隐显示。关于配置文件的设定已有文献可查,本文附录2简述了其配置设定选择。
实际上,启动封面也是可以定做的。笔者在分析的过程中发现,在显示内部嵌入封面前先试图打开一个在引导目录下名为的文件,若打开失败则转显示内部嵌入封面,若打开成功则做文件格式检查,其要求的格式比对的检查条件苛刻。
对检查的代码如下:
-ude0e
12B9:DE0E813C424DCMPWORDPTR[SI],4D42
12B9:DE120FDB0F
12B9:DESTCX,[BX+SI+01]
12B9:DE1683C60EADDSI,+0E
文档评论(0)