標籤:class blog c tar ext http
為了使用方便,我們可能會把RAR壓縮包製作成自解壓檔案。WinRAR內建的自解壓模組雖然使用很方便,但千篇一律的外觀看起來實在
乏味。其實,只要通過簡單改造,你就可以製作出與眾不同,聲色俱佳的WinRAR自解壓介面,讓你的朋友羨慕去吧。
認清自解壓模組的真面目
進入WinRAR的安裝路徑,你會看到幾個尾碼名為“SFX”的檔案,它們就是WinRAR的自解壓模組(圖1)。找到“Default.SFX”並複製一
份作為備份,以便在操作失敗後補救。你可以把它的尾碼名改為“EXE”,運行一下看看(圖2)。奇怪吧,看上去就是一個普通的WinRAR自解壓
檔案。它實際是一個用來封裝WinRAR壓縮檔的外殼,因為不包含任何檔案,所以才顯示“壓縮檔格式未知或已經損壞”。現在大家應該明
白了,自解壓檔案的介面就是由“Default.SFX”來決定的,改造它就可以讓自解壓檔案改頭換面。
圖1:
圖2:
既然“Default.SFX”是一個可執行檔程式,那麼問題就簡單了,漢化軟體的常用工具eXeScope和Resource
Hacker都可以查看和編輯可執行程式的資源。用Resource
Hacker開啟,試試查看它的對話方塊資源,得到的卻是一個錯誤提示(圖3)。看來這個檔案是被壓縮過的(也稱為加殼)。用ASPack、UPX或
PECompact等工具軟體對EXE檔案進行壓縮,不會影響其使用,但可以減小檔案體積,還能避免檔案被破解或者資源被修改。現在無法用 Resource
Hacker查看“Default.SFX”中的資源,就是這個原因。
圖3:
與眾不同 製作會唱歌的WinRAR(二)
由於無法確定是用哪種軟體壓縮的,因此需要藉助工具軟體PEiD對其進行分析。用PEiD開啟“Default.SFX”,顯示它被UPX工具壓縮過
(圖4),因此首先要進行解壓(脫殼),否則無法對它進行修改。用UPX Shell開啟“Default.SFX”(UPX
Shell是UPX的圖形化介面程式,通過它能夠方便地調用UPX完成各種操作),選擇解壓縮(圖5)。
圖4:
圖5:
與眾不同 製作會唱歌的WinRAR(三)
濃妝淡抹,改造外觀
用Resource
Hacker開啟解壓後的“Default.SFX”,現在就能正確顯示其中資源了(圖6)。先從“對話方塊”下手,可以看到每個子項都包含3個資源:“1028
”為繁體中文資源,“1033” 為英文資源,“2052”為簡體中文資源。為了減小自解壓模組的體積,把用不到的繁體中文和英文資源全部刪掉。同樣的道理,無用的繁體中
文和英文字串資源也可以一併剔除。
圖6:
接下來,我們開始替換其中的表徵圖及位元影像資源。表徵圖資源就是自解壓檔案在Windows系統中顯示的表徵圖,而位元影像資源則是顯示在自解壓
主介面的圖片,我們可以找一些喜歡的圖片和表徵圖替換預設資源。圖片必須是BMP格式(256色),尺寸可以自定,但是最好不要超過400×227或
227×400像素,否則很容易出現問題;而表徵圖則為ICO格式,需要4個樣式(分別是16×[email protected]色、16×[email protected]
色、32×[email protected]色和32×[email protected]色)。備齊這些資源後,用eXescope開啟“Default.SFX”檔案,選擇要替換的資源,點擊“匯入”按鈕進行替換
,並在提示更新檔案時予以確認(圖7)。
圖7:
easy提示
位元影像資源的尺寸對自解壓模組的體積影響很大,如果自解壓模組的圖片過大,壓縮檔轉換為自解壓檔案後體積將增加很多,這將影響 其實用性。
下面來看看對話方塊資源,按“F12”鍵可進行預覽(圖8),可以確認其中的“ASKNEXTVOL”為分卷壓縮包解壓提示,“GETPASSWORD1”為
輸入解壓密碼,“LICENSEDLG”為安裝協議對話方塊,“RENAMEDLG”為重新命名對話方塊,“REPLACEFILEDLG”為替換檔案對話方塊,“STARTDLG”為
自解壓模組主介面。顯然,需要修改的就是“STARTDLG”和“LICENSEDLG”。
圖8:
與眾不同 製作會唱歌的WinRAR(四)
選中“STARTDLG”按下“F8”鍵即可開啟“對話方塊編輯器”。點選其中的對象元素,然後通過滑鼠的即時操作調節其大小與位置(圖9)
。如果要進行比較精細的調整(例如對齊),可在eXescope右側視窗的上方直接填寫具體的數值。文字資訊也可以在標題中直接修改。另外,我
們還可以對其中的資源的布局進行設定,如不想要其中的文字說明部分,只需取消它的可見屬性(圖10)。
圖9:
圖10:
修改的過程中,尤其要注意的是圖片框的尺寸不能小於前面設定的位元影像資源,否則會顯示不完整,影響整體效果。靠肉眼觀察顯示是不
準確的,那有沒有能較好地解決這個問題的方法呢?答案是有的。例如位元影像的尺寸為176像素寬,209像素高,除以1.5以後為117和140,直接在
eXescope中把映像對象的尺寸設定為117×140就可以了(圖11)。修改尺寸時要注意確認物件類型,以免弄錯。通過不斷的修改,自解壓模組的
介面已經煥然一新了(圖12)。“LICENSEDLG”與“STARTDLG”有很多相同之處,但對象元素較少,因此可參照按照“STARTDLG”進行修改,這
裡便不再贅述。為了風格統一,建議兩者使用相同布局。
圖11:
圖12:
與眾不同 製作會唱歌的WinRAR(五)
至此,自解壓模組的修改已基本完成,為了進一步彰顯個性,還可以為自解壓模組打上專屬標記,比如首頁及電子信箱等資訊。用 Resource
Hacker開啟“Default.SFX”檔案,在對話方塊資源“STARTDLG”中單擊滑鼠右鍵,選擇“插入控制項”(圖13)。點擊“label”或者從預定義控制項
下拉式清單中選擇“STATIC”,並在標題位置填入想顯示的資訊(圖14)。如果有多行可以分別添加,調整好控制項的大小及位置後,點擊“編譯腳
本”按鈕(圖15),儲存退出即可。
圖13:
圖14:
圖15:
與眾不同 製作會唱歌的WinRAR(六)
接下來開始測試。具體過程是將自解壓模組放在WinRAR的安裝目錄中,然後建立自解壓檔案測試自解壓模組工作是否正常(圖16)。某些
情況下,Resource
Hacker儲存資源後會出現無法使用的問題,這時只需將修改出問題的模組刪掉,使用其儲存前自動備份的模組(Default_original.SFX)改名後
重新修改即可。測試滿意後,再利用UPX
Shell將修改後的模組壓縮。一般來講,壓縮比能達到50%左右,體積已大幅減小。再次將壓縮後的模組複製到WinRAR的安裝路徑下,如果測試
沒問題,恭喜你,大功告成(圖17)。
圖16:
easy提示
將修改好的自解壓模組改名為“Default.SFX”,覆蓋WinRAR安裝目錄中的同名檔案,這樣便可直接使用,減少選擇
模組的過程,精簡操作步驟。
與眾不同 製作會唱歌的WinRAR(七)
錦上添花,加入音樂
視覺效果已經完成了,下面再來加入聽覺效果。找一個合適的音樂檔案作為自解壓檔案的背景音樂,檔案格式可以是MP3、MIDI等。考
慮到檔案的體積,建議使用MIDI格式,如果實在想使用MP3格式,最好是節選一段並降低碼率,以控制檔案體積。
選擇需要壓縮的檔案及檔案夾,按右鍵選擇“添加到壓縮檔”,在彈出的對話方塊中勾選“建立自解壓格式壓縮檔”(圖18),填寫
好檔案名稱後點擊“進階”頁面中的“自解壓選項”。切換到“文本和表徵圖”頁面,在“自解壓檔案視窗中顯示的文本”中填入以下資訊(圖19)
。由於WinRAR的安裝指令碼支援部分HTML格式,因此這部分內容就是當作HTML處理的。
┌───────────────────────────────┐
│ │
│……此處資訊可自訂……
│
│……根據需要填寫相應資訊…… │
│ │
│
│
└───────────────────────────────┘
圖18:
圖19:
其中“EMBED
src="http://article.pchome.net/http://article.pchome.net/midi.mid"”指定背景音樂檔案名稱,“autostart="true"”代表自動播放音樂檔案,“width”和“height”代表控制台的寬和高,兩者
設為“0”就不會顯示播放控制台,破壞整體美觀。點擊兩次“確定”後就可以產生自解壓檔案了。
與眾不同 製作會唱歌的WinRAR(八)
然後把背景音樂檔案“http://article.pchome.net/http://article.pchome.net/midi.mid”以及剛才產生的自解壓檔案同時選中,再次打包為自解壓檔案。先填寫好檔案名稱,點擊“進階”頁面
中的“自解壓選項”,在“常規”頁面的“解壓後運行”輸入框中填入上第一次打包產生的自解壓檔案名稱(圖20)。在“模式”頁面勾選“解包
到臨時檔案夾”、“全部隱藏”和“覆蓋所有檔案”這三項(圖21),點擊兩次“確定”按鈕後即可得到最終的自解壓檔案(使用這種模式要謹慎
,網路上某些木馬就是通過這種方式傳播的)。
圖20:
圖21:
運行自解壓檔案,稍等一下就會看到我們定製的自解壓介面,同時還有優美的背景音樂從音箱中傳出,製作一個這樣的自解壓檔案發給
朋友,自豪地告訴他們“我的WinRAR會唱歌!”