Windows 95的引導(dǎo)圖形界面及抖動變色圖像的形成_第1頁
Windows 95的引導(dǎo)圖形界面及抖動變色圖像的形成_第2頁
Windows 95的引導(dǎo)圖形界面及抖動變色圖像的形成_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Windows95的引導(dǎo)圖形界面及抖動變色圖像的形成

摘要該文剖析了Windows95的部分文件,給出了人們很感興趣的用戶定做啟動徽標(biāo)和關(guān)機(jī)圖像的方法,并使其顯示啟動徽標(biāo)抖動和變色。一、引言Windows95以更新更好的界面展現(xiàn)在用戶面前,而給人印象最深的是表明其是"徹底"圖形界面的引導(dǎo)及結(jié)束時(shí)的標(biāo)志圖形。Windows95使系統(tǒng)由圖形引導(dǎo)啟動并在圖形界面中關(guān)閉,系統(tǒng)在顯示微軟啟動徽標(biāo)的同時(shí)進(jìn)行初始化,在顯示等待信息的同時(shí)完成系統(tǒng)退出并以一個(gè)圖形化的提示信息結(jié)束系統(tǒng)工作。此外,Windows95還為舊DOS程序的運(yùn)行設(shè)計(jì)了很好的圖形化界面,從而使系統(tǒng)的整個(gè)工作過程完全可以脫離過去的命令行方式。本文介紹這些界面圖形的定制和使啟動封面圖形抖動變色的方法。二、Windows95的三幅界面圖Windows95用三幅圖完成其初始化和關(guān)閉傳遞信息工作,即啟動徽標(biāo)(封面)、封底1(顯示"Pleasewaitwhileyourcomputershutsdown")、封底2(顯示"It'snowsafetoturnoffyourcomputer")。其中封底1和封底2的圖形是兩個(gè)256色的位圖文件,名字分別為LOGOW.SYS和LOGOS.SYS,存放在Windows的工作目錄下,負(fù)責(zé)這兩個(gè)圖形顯示的程序分別是USER.EXE和WIN.COM,它們在打開相應(yīng)的圖形文件后分別作文件格式檢查。WIN.COM的檢查段代碼為:debug-u3b683b830AF4:3B68813F424DCMPWORDPTR[BX],4D420AF4:3B6CF9STC0AF4:3B6D75B9JNZ3B280AF4:3B6FBBCE40MOVBX,40CE0AF4:3B72833F28CMPWORDPTR[BX],+280AF4:3B7575F5JNZ3B6C0AF4:3B77837F0C01CMPWORDPTR[BX+0C],+010AF4:3B7B75EFJNZ3B6C0AF4:3B7D837F0E08CMPWORDPTR[BX+0E],+080AF4:3B8175E9JNZ3B6C0AF4:3B8360DB60寄存器BX中裝的是打開成功的文件LOGOS.SYS首地址的偏移值,通過對比位圖文件的首部結(jié)構(gòu),我們可以立即得到所打開的文件LOGOS.SYS是一個(gè)非壓縮、位面數(shù)是1、256色的位圖圖像文件(關(guān)于位圖文件的頭部標(biāo)志域可見附錄1的簡述)。實(shí)際上LOGOS.SYS文件確實(shí)是一個(gè)完整的位圖文件,可以用Paintbrush編輯,它顯示封底2的信息。因此我們可產(chǎn)生相應(yīng)格式的位圖文件取代,試驗(yàn)證明完全可行。USER.EXE對LOGOW.SYS也作類似處理,只是對位圖標(biāo)志域檢查對比的部分語句不連續(xù),其各項(xiàng)檢查如下:renuser.exeuserexedebuguserexe-u5ada:abb85ADA:ABB8813F424DCMPWORDPTR[BX],4D42-u5ada:abc45ADA:ABC4833F28CMPWORDPTR[BX],+28-u5ada:abcb5ADA:ABCB837F0C01CMPWORDPTR[BX+0C],+01-u5ada:abd35ADA:ABD3837F0E08CMPWORDPTR[BX+0E],+08其中寄存器BX中為打開的LOGOW.SYS存儲首址。由此可見,可以用相應(yīng)格式的位圖來取代LOGOW.SYS用作封底1的顯示。值得注意的是,顯示時(shí)自動按設(shè)定的屏幕分辨率來做全屏幕顯示,對640×480、256色的屏幕,其位圖大小最好設(shè)定為320×400像素。三、啟動徽標(biāo)封面的定做方法Windows95的封面沒有獨(dú)立文件形式的位圖文件,這與WIN.COM對LOGOS.SYS的處理和USER.EXE對LOGOW.SYS的處理不同。筆者在剖析引導(dǎo)文件IO.SYS的過程中發(fā)現(xiàn),Windows95的啟動封面徽標(biāo)是嵌入在引導(dǎo)文件IO.SYS中的,并經(jīng)DBLSPACE壓縮過,圖像數(shù)據(jù)區(qū)長度為64KB。在筆者剖析的Windows95版本中,圖像數(shù)據(jù)占據(jù)IO.SYS(文件長度223748B)217~344扇區(qū),數(shù)據(jù)內(nèi)部有多處"DS"標(biāo)識,這是DBLSPACE壓縮文件的標(biāo)志,由于DBLSPACE是分段校驗(yàn)壓縮文件,因此,即使此區(qū)內(nèi)有一個(gè)字節(jié)的改動也會造成圖像的大幅破壞。在上述IO.SYS中,圖像顯示執(zhí)行代碼部分起始于以"DBLSBIN$\LOGO.SYS"標(biāo)志的地方并占據(jù)110-112扇區(qū)。由于DBLSPACE的壓縮文件很復(fù)雜并分段校驗(yàn),使我們不能像對Windows3.1的WIN.COM那樣通過改動組合文件或重編WIN.COM的部分代碼來定做啟動封面,但可以在MSDOS.SYS中以Logo=0來消隱顯示。關(guān)于配置文件MSDOS.SYS的設(shè)定已有文獻(xiàn)可查,本文附錄2簡述了其配置設(shè)定選擇。實(shí)際上,啟動封面也是可以定做的。筆者在分析IO.SYS的過程中發(fā)現(xiàn),IO.SYS在顯示內(nèi)部嵌入封面前先試圖打開一個(gè)在引導(dǎo)目錄下名為LOGO.SYS的文件(利用DOS功能調(diào)用INT21H,AH=3DH子功能),若打開失敗(此文件不存在)則轉(zhuǎn)顯示內(nèi)部嵌入封面(在WIN.COM及USER.EXE中打開文件失敗時(shí)則不顯示圖形,而代之以文本顯示有關(guān)信息),若打開成功則做文件格式檢查,其要求的格式比WIN.COM對LOGOS.SYS的檢查條件苛刻。IO.SYS對LOGO.SYS檢查的代碼如下:debugio.sys-ude0e12B9:DE0E813C424DCMPWORDPTR[SI],4D4212B9:DE120FDB0F12B9:DE13854801TESTCX,[BX+SI+01]12B9:DE1683C60EADDSI,+0E-ude1912B9:DE19833C28CMPWORDPTR[SI],+28-ude2012B9:DE20837C0C01CMPWORDPTR[SI+0C],+01-ude2812B9:DE28837C0E08CMPWORDPTR[SI+0E],+08-ude3012B9:DE30817C044001CMPWORDPTR[SI+04],0140-ude3912B9:DE39817C089001CMPWORDPTR[SI+08],0190-ude4212B9:DE42837C1000CMPWORDPTR[SI+10],+00從以上代碼我們可以立即看出,所打開的文件是一個(gè)非壓縮、幅度320×400、位面數(shù)為1、256色的位圖文件。因此,可以用Paintbrush等工具形成一個(gè)256色非壓縮、320像素×400像素的位圖文件并命名為LOGO.SYS,將其放在引導(dǎo)目錄下即可。要求的LOGO.SYS格式恰好與LOGOS.SYS及LOGOW.SYS的格式一致。作為驗(yàn)證,可將LOGOS.SYS或LOGOW.SYS命名為LOGO.SYS并放在引導(dǎo)目錄下,實(shí)驗(yàn)證明完全可行。如果引導(dǎo)目錄下有名為LOGO.SYS的文件,但沒有通過上述所有檢查,則拒絕顯示并且也不再顯示內(nèi)部嵌入的徽標(biāo)封面。四、撤銷對LOGO.SYS的格式檢查并形成抖動變色的徽標(biāo)封面用上述方法顯示的外部封面圖像是靜止的,而IO.SYS中的圖像下面具有一個(gè)滾動的顏色條,如下的方法則可以使圖像顏色變化抖動。如果去掉引導(dǎo)目錄下的LOGO.SYS,則IO.SYS內(nèi)嵌的圖像也可以做到整幅圖面"彩云流動",具有很強(qiáng)的動感。位圖的抖動變色是由IO.SYS處理的,其有關(guān)處理標(biāo)志嵌入到上面對LOGO.SYS的判斷語句內(nèi),因此將相關(guān)的語句作一下改動即可。方法為:用PCTOOLS或其它工具(DEBUG等)找到下面有下劃線的部分,將其均改寫為16進(jìn)制機(jī)器代碼90(nop不作任何操作的空指令),在首尾之間共60字節(jié),其中含有一些代碼在上文的反匯編中并未列出。debugio.sys-dde0012B9:DE000093BA0200E8D602-0F8252018BF2813CR12B9:DE10424D0F85480183C6-0E833C280F853E01BM..H<(..>12B9:DE20837C0C010F853601-837C0E080F852E01.|6..|12B9:DE30817C0440010F8525-01817C0890010F85.|.@...%..|12B9:DE401C01837C10000F85-14018B44241E2E8E...|D$..12B9:DE501E3E0FA2D802F6D8-04FFA2D90284E474.>12B9:DE6006A3DA02A3DC021F-2EC606F28E00160712B9:DE7083EC268BFCBD5F03-E84502B90080E8E9..&..._..E對IO.SYS作上述改動后,可以顯示任何位圖,但由于顯示是根據(jù)系統(tǒng)顯示驅(qū)動程序及屏幕調(diào)整圖形大小,因此尺度上仍以原設(shè)定為好。若想做改動應(yīng)先測試,結(jié)果可能會失真,但不影響顯示及運(yùn)行。經(jīng)過上述改動后,在沒有外部LOGO.SYS的情況下,內(nèi)嵌的封面可以抖動和變色。若將LOGOS.SYS或LOGOW.SYS命名為LOGO.SYS并放在引導(dǎo)目錄下即可代替內(nèi)部封面而且具有變化的色彩。但若對這兩個(gè)位圖進(jìn)行了編輯或是用Paintbrush形成的新文件一般不能變色,這是由于Paintbrush形成的文件實(shí)際用到的色彩很少,位圖顏色表大部分是空的。要形成一個(gè)新的變色徽標(biāo)應(yīng)該:1.用Paintbrush等形成一個(gè)普通256色位圖;2.使形成的位圖具有完全的256顏色索引表,這可以從LOGOW.SYS或LOGOS.SYS的顏色索引表中得到,即復(fù)制LOGOW.SYS或LOGOS.SYS文件偏移36H~436H的域到新文件相同的域。注意不要改動位圖前0~36H字節(jié)。將新文件命名為LOGO.SYS并放在引導(dǎo)目錄下即可。五、撤銷WIN.COM及USER.EXE對LOGOS.SYS和LOGOW.SYS的格式檢查方法與前面類似,此處不再一一詳述。由于引導(dǎo)文件非常重要,在做改動時(shí)一定要在拷貝上改動,現(xiàn)在DOS7用IFSHIP.SYS可以處理長達(dá)255B的文件名,而此文件名的存儲是將目錄項(xiàng)屬性字節(jié)改為0FH,即系統(tǒng)(04)+隱藏(02)+只讀(01)+卷標(biāo)(08)=VFAT的文件名屬性(0FH),并利用多個(gè)目錄項(xiàng)區(qū)將長文件名連續(xù)存放。為了防止數(shù)據(jù)丟失,DOS7屏蔽了絕對磁盤寫INT26H,而PCTOOLS等工具的EDIT功能是調(diào)用INT26H進(jìn)行寫盤的的,若在硬盤上改動會造成系統(tǒng)死鎖而取消寫盤,在軟盤上則沒有這個(gè)問題,因此建議對IO.SYS的修改在系統(tǒng)軟磁盤上進(jìn)行。對DOS7的系統(tǒng)軟盤形成很容易,在DOS7下初始化的磁盤,只將IO.SYS、MSDOS.SYS、COM-MAND.COM拷進(jìn)即可引導(dǎo)Windows95,這是由于DOS7有更精巧的BOOT引導(dǎo)區(qū),引導(dǎo)文件IO.SYS可以不連續(xù)存放、不占起始簇、文件名項(xiàng)不是第一目錄項(xiàng)。六、附錄:MSDOS.SYS的配置和位圖文件結(jié)構(gòu)附錄1:本文涉及到的位圖文件首部重要域偏移長度(Bytes)標(biāo)識信息00H2424DH即"BM"0EH4位圖信息頭大小28H=40字節(jié)12H4位圖寬度像素?cái)?shù)4001H=320個(gè)像素16H4位圖高度像素?cái)?shù)9001H=400個(gè)像素1AH2位圖目標(biāo)設(shè)備位面數(shù)11CH2位圖陣列每像素所需位數(shù),可取值為1:單色,4:16色,8:256色,24:16G色1EH4位圖壓縮標(biāo)志,可取值:0:未壓縮,1:行程壓縮8位位圖,2:4位壓縮位圖因此本文IO.SYS所讀的位圖LOGO.SYS是非壓縮、位面數(shù)為1、256色、寬320像素、高400像素的位圖。附錄2:MSDOS.SYS中的配置選擇[Options]Logo=1/0;1:顯示徽標(biāo),0:消隱徽標(biāo)BootGUI=1/0;1:啟動后直接引導(dǎo)視窗,0:啟動后顯示DOS提示符Network=1/0;1:網(wǎng)絡(luò)已安裝,0:未安裝BootWin=1/0;1:引導(dǎo)視窗系統(tǒng),0:引導(dǎo)舊的DOS系統(tǒng)BootDelay=2;1:StartingWindows95標(biāo)志延遲可以改成它值,0:不顯示BootKeys=1/0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論