某些情況下我們需要對軟體的安裝程式包進行修改,替換其中的部分檔案,也就是所謂 repack。
本文討論採用.cab壓縮包的安裝程式的拆解打包,主要是蒐集工具,使用方法除了install shield的高版本描述稍多外,其他均為圖形介面程式,所以描述相對簡略,也沒有截圖(主要是因為我比較懶*^_^*)。
以下內容均係本人日常實踐(repack過的軟體有symantec ghost 7.5 中文版、dr.eye 2005 專業版、智慧型狂拼iii.3 專業版等),草草歸納,不當之處,敬請指正。
cab 格式分類
·lzcab 採用lzx編碼壓縮的cab包,一般見於 freeware
·mscab 微軟格式的cab包,常見於微軟的程式,symantec ghost 7.5 安裝程式也採用此格式。
·iscab installshield製作的安裝包中使用,特徵是同時存在乙個.hdr檔案
lzcab 拆解
·解壓
使用winrar即可解壓·壓縮
使用cabpack打包,compression options選擇 lzxmscab 拆解
·解壓
使用winrar即可解壓·壓縮
使用cabpack打包,compression options選擇 mszipiscab 拆解
installshield 的資料報一般格式為 data1.cab,同時有乙個 data1.hdr,用於描述檔案分組定義,如果檔案較多,還會存在乙個 data2.cab ,實際上是分卷壓縮包。
iscab 6.0 以下的版本可以使用 zipscan 解壓,也可以使用 winpack 進行檔案的提取和替換、新增。
高版本的 iscab 可使用 installshield 中提供的命令列工具進行操作,以installshield x為例,安裝installshield x後,從安裝目錄下的.\system中提取以下檔案:
**:
iscab.exe之後可以脫離 installshield 執行。istools.dll
mediabuild40.dll
* 為省去安裝 installshield 的麻煩,我已將提取的檔案打包為 iscabx.zip 作為附件上傳。
·首先要提取安裝包結構資訊,使用命令列
iscab data1.cab -lx -icab.ini
將資訊輸出到 cab.ini 檔案,大致如以下的格式:
**:
[iscab info]·如果要從包中移除某些檔案或者替換檔案(也要先移除,然後再重新加入),應編輯匯出的 cab.ini 檔案,僅保留頭部描述段([iscab info])和要移除的檔案描述(注意,檔案所在的組描述應保留,如 [dat files]),將編輯後的檔案另存為 del.ini,使用命令列product=iscab
version=2.0
[dat files]
file1="setup.dll"
...
iscab data1.cab -r -idel.ini
·如果要向包中新增檔案,應將相應檔案放置在當前目錄下,同時和 data1.cab 同目錄下的 setup.inx,setup.ini 等檔案都必須存在。編輯匯出的 cab.ini 檔案,僅保留頭部描述段([iscab info])和要加入的檔案描述(注意,檔案所在的組描述應保留,如 [dat files]),將編輯後的檔案另存為 add.ini,使用命令列
iscab data1.cab -a -iadd.ini
好了,安裝檔案打包完成了,就像「原裝」的一樣,簡單吧?
附件 cabrepackkit.zip 中包括
cabpack.zip
winpack.zip
iscabx.zip
上傳的附件
cabpack.zip (469.5 kb, 96 次檢視)
winpack.zip (570.9 kb, 85 次檢視)
iscabx.zip (544.4 kb, 107 次檢視)
Vue Vue簡介 安裝 使用方法之詳細攻略
1 前端三大技術html js css 2 前端三大主流框架reactor facebook vue 華人,已加入阿里系 angelar google vue.js最初是華人開發,所以語法有中文版。vue 讀音 vju 類似於 view 是一套用於構建使用者介面的漸進式框架。與其它大型框架不同的是,...
安裝與解除安裝之解除安裝篇 程式自殺
電腦用得久了,安裝的軟體亂七八糟,怎麼辦?一般我們會開啟控制面版裡的新增刪除程式選項,選擇相應的解除安裝選項就可以了。但如果我們能在自己的程式中增加乙個刪除功能來實現 自殺 則會令軟體增色不少。有點電腦常識的人都知道,在windows下如果程式正在執行,那麼是無法將其刪除的,當然,也不是絕對不可以。...
Android之獲得已安裝程式列表
我們大家都知道在手機上我們可以檢視圖示來知道我們都安裝了什麼樣的應用,但實際上載android中我們可以獲得你安裝應用的各種資訊,雖然在我的應用程式中只需要獲得 我們首先,可以建立乙個用於存放應用程式資訊的類結構。我們必須寫這個,要不我們就不會看見你想要的資訊,那麼我們就來看看,如下 private...