压缩与反压缩之 COMPRESS 与 EXPAND
生活随笔
收集整理的這篇文章主要介紹了
压缩与反压缩之 COMPRESS 与 EXPAND
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉自Alexis Zhang's Blog,ITECN的blog水平比起51cto是高不少的,只是牛人們一般不愛寫blog,所以更新很慢....
壓縮與反壓縮之 COMPRESS 與 EXPAND
筆者前幾天被一個看似簡單的問題給問住了:我們知道,擴展名最后一位是下劃線 _ 的文件是一種經過壓縮的文件,必須通過 EXPAND 或 EXTRACT 命令將其還原。例如執行:EXPAND \i386\SHELL32.DL_ SHELL32.DLL 可以從 Windows 安裝程序中將 SHELL32.DL_ 還原為 SHELL32.DLL。那么 EXPAND 命令的相反命令是什么呢?即如何將一個正常的文件壓縮為擴展名的最后一位是下劃線的這種格式呢? ? 這個問題最早是新聞組中的一位仁兄問起如何更換 Windows XP 的默認墻紙。眾所周知,剛安裝好的 Windows XP 默認使用的是那副曾經被人傳說包含有“WHG KILL ME”驚天大秘密的藍天白云墻紙 BLISS.JPG,BLISS.JPG 的源文件就是位于 i386 中的 BLISS.JP_。如果我們希望剛安裝好的 Windows XP 使用另一副默認墻紙,應該如何將這張墻紙壓縮為 BLISS.JP_ 并替換 i386 中的源文件呢? ? 除了這個問題,筆者前不久又看到了一家 OEM 廠商制作的 OEM 版 Windows 安裝啟動鏡像,由于鏡像中的安裝源文件夾名稱沒有采用默認的文件夾名,必須要修改 TXTSETUP.SIF?中的字符串 SetupSourcePath 以重新指定安裝源文件夾名,否則安裝鏡像將無法正常引導。筆者起初也不太清楚 OEM 廠商是如何將修改好的 TXTSETUP.SIF 重新壓縮為?TXTSETUP.SI_ 并復制到 i386 文件夾中的。 ? 經在線合作伙伴工程師馬寧指點,EXPAND 的相反命令原來是 COMPRESS,這個命令包含在 Windows 2000/Server 2003 的 Resource Kit 中,需要從 Resource Kit?單獨獲取。COMPRESS 命令的用法與 EXPAND 基本相似,基本格式為: ? COMPRESS 源文件名 目標文件名(例如 COMPRESS C:\Windows\system32\SHELL32.DLL D:\i386\SHELL32.DL_) ? 或者: ? COMPRESS -R 源文件名 ? -R 是 COMPRESS 的基本參數,意為將源文件壓縮并重命名為擴展名最后一位下劃線的這種格式,使用它就可以不用再指定目標文件名了。 ? 此外,COMPRESS 命令還有幾個常用的參數: ? -D:用于目標發生改變的文件; -ZX:使用 Lempel-Ziv(LZX)壓縮方式,可以將壓縮包最多減小至 18% 的體積并將自解壓速度提升至將近 50%; -Z:使用 MS-ZIP 壓縮方式,實際就是 .CAB 采用的壓縮格式; -ZQ [ N ]:N 是取值從 1 至 7 的數字,表示壓縮比,例如 -ZQ5,其中 1 表示速度最快、7 表示壓縮比最大,如果不指定這個參數,將使用默認的 LEVEL 4 中等級別。 ? 為了證實上述問題,筆者對照那張 OEM 廠商制作的 OEM 啟動鏡像自制了一個 Windows XP SP3 的啟動安裝鏡像,同樣不采用默認源文件夾名稱,而是將 TXTSETUP.SIF 中的 SetupSourcePath 修改后,使用?COMPRESS 將其壓縮為 TXTSETUP.SI_ 并替換 i386 中的源文件;接著,筆者又將 Windows Vista 的 AURORA.JPG 極光墻紙重命名為 BLISS.JPG、使用 COMPRESS 壓縮為 BLISS.JP_ 并替換 i386 中的源文件;最后,筆者還將 Windows XP SP3 的并發連接破解補丁與視覺樣式破解補丁文件 TCPIP.SYS 與 THEMEUI.DLL 也使用 COMPRESS 壓縮并替換 i386 中的源文件(關于并發連接破解補丁與視覺樣式破解補丁可以參考筆者較早前的一篇博客《Windows XP SP3 版并發連接破解補丁與視覺樣式破解補丁》)。 ? 接下來筆者啟動虛擬機,使用這份經過三處改動的啟動安裝鏡像安裝 Windows XP,整個安裝過程沒有任何錯誤,證明 Windows 安裝程序可以正確識別并解壓縮筆者用 COMPRESS 壓縮的三個文件,預期的三個目的也全部實現了:1.根據 TXTSETUP.SIF 提供的信息在自定義的文件夾中找到安裝程序源文件;2.安裝好的 Windows XP 默認墻紙變成了 Windows Vista 的 Aurora 極光墻紙,盡管文件名依然還是 BLISS.JPG;3.安裝好的 Windows XP 使用了經過破解的 TCPIP.SYS 與 THEMEUI.DLL,可以直接突破并發連接限制并使用第三方的視覺樣式了。 ? 總之,COMPRESS 與 EXPAND 就是一對壓縮與解壓縮孿生兄弟,一個可以方便修改 Windows 安裝程序源、一個可以方便從 Windows 安裝程序源提取文件。在沒有安裝其它第三方壓縮軟件的時候,COMPRESS 與 EXPAND 也可以實現一些簡單的壓縮與解壓縮工作。轉載于:https://blog.51cto.com/xmuxsp/107102
總結
以上是生活随笔為你收集整理的压缩与反压缩之 COMPRESS 与 EXPAND的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 波形捕捉:(1)枚举捕捉设备
- 下一篇: 纯C#代码的Excel读取器(不需要Of