[教學]Internet Explorer 8重新封包安裝



贊助商連結


purk
2010-11-21, 09:35 PM
根據以下幾篇

http://www.pczone.com.tw/post/1078509/7/

http://www.pczone.com.tw/post/1078510/8/

http://bbs.wmzhe.com/viewthread.php?tid=17580&rpid=147152&ordertype=0&page=1#pid147152

http://www.msfn.org/board/topic/44639-sfxcabexe/

http://hi.baidu.com/wd12aa/blog/item/53e835c72ce6cb1c9d163d7d.html

修正部分錯誤以及補上圖片

製作出的教學

目前Internet Explorer 8好像有6個修正

其中

IE8-WindowsXP-KB978207-x86-CHT可以直接用

IE8-WindowsXP-KB2360131-x86-CHT取代

IE8-WindowsXP-KB971961-x86-CHT可以直接用

IE8-WindowsXP-KB976662-x86-CHT取代

此外會使用到此篇的壓縮cab工具

http://hi.baidu.com/long200259/blog/item/34f23058cf384b91810a186c.html

_______________文章開始______________________
整個步驟基本流程如下


IE8 在大陸的封裝集成法,很不錯.
1.先將主程式和補丁拆解
2.再將最新文件置換主程式中
3.破解update.exe
4.再封裝為IE8.CAB
5.截取IE8壓縮檔頭.
6.將IE8.CAB和IE8壓縮檔頭合併.
如此一來,可得到和官方一樣之檔案.
安裝參數完全一樣.
而且不喜歡還可以在控制台內新增移除功能,把IE8移除.

引用自http://www.pczone.com.tw/post/1078509/7/


因此首先得先取得CAB自解檔案的檔頭部分

這部分參考
http://www.msfn.org/board/topic/44639-sfxcabexe/
How to creat SFXCAB file.

1. Hex edit one update file. Delete after MSCF part. So u have sfx module. lets name it cab.sfx
2. Compress all folder or files with make cab. lets name it files.cab
3. copy /b cab.sfx+files.cab files.exe
4. Hex edit to run files after extract. For example. u want to run setup.exe
Search setup.exe in files.exe.
There is 20 00 in front of setup.exe
Chance it to 60 00.


所以開啟HEX軟體 (以WINHEX為例)

1.開啟WINHEX然後開啟從網路下載的IE8-WindowsXP-x86-CHT.EXE
http://www.pczone.com.tw/attachment.php?attachmentid=21133&d=1290669023

2.搜尋cab檔案的關鍵字"MSCF" <---- 這裡有一個隱藏點

PS.請搜尋到 '第3個' MSCF 或者 中文版(正簡都一樣)直接搜尋 'PADDINGMSCF'
http://www.pczone.com.tw/attachment.php?attachmentid=21134&stc=1&d=1290669143
http://www.pczone.com.tw/attachment.php?attachmentid=21135&stc=1&d=1290669187

3.選取MSCF開頭 ---> 可使用快速鍵alt+1
http://www.pczone.com.tw/attachment.php?attachmentid=21136&stc=1&d=1290669187

4.選取檔案結尾 ---> 可使用快速鍵alt+2
http://www.pczone.com.tw/attachment.php?attachmentid=21137&stc=1&d=1290669187

5.按下del刪除選擇的區塊
http://www.pczone.com.tw/attachment.php?attachmentid=21138&stc=1&d=1290669187

6.選擇另存新檔 將cab自解檔的檔頭保留下來
http://www.pczone.com.tw/attachment.php?attachmentid=21139&stc=1&d=1290669187
http://www.pczone.com.tw/attachment.php?attachmentid=21140&stc=1&d=1290669479
7.確認存下來的cab自解檔的檔頭大小是正確的
cab.sfx滑鼠右鍵-內容
http://www.pczone.com.tw/attachment.php?attachmentid=21141&stc=1&d=1290669479

IE8-WindowsXP-x86-CHT.EXE滑鼠右鍵-內容
http://www.pczone.com.tw/attachment.php?attachmentid=21142&stc=1&d=1290669479

確定IE8-WindowsXP-x86-CHT.EXE自解部分與cab.sfx大小吻合都是40448

http://www.pczone.com.tw/attachment.php?attachmentid=21143&stc=1&d=1290669479

贊助商連結


purk
2010-11-25, 04:21 PM
8.接下來將IE8-WindowsXP-x86-CHT用WinRAR解壓縮

http://www.pczone.com.tw/attachment.php?attachmentid=21144&stc=1&d=1290671210
9.分別點選IE8的4個hotfix 或 把hotfix用指令解壓到TEMP資料夾
IE8-WindowsXP-KB976662-x86-CHT
IE8-WindowsXP-KB981332-x86-CHT
IE8-WindowsXP-KB2360131-x86-CHT
IE8-WindowsXP-KB2362765-x86-CHT

http://www.pczone.com.tw/attachment.php?attachmentid=21145&stc=1&d=1290671210

10.將解出的hotfix修正檔案 取代到IE8-WindowsXP-x86-CHT資料夾內
http://www.pczone.com.tw/attachment.php?attachmentid=21146&stc=1&d=1290671210
http://www.pczone.com.tw/attachment.php?attachmentid=21147&stc=1&d=1290671210
11.使用MCab.bat將IE8-WindowsXP-x86-CHT資料夾壓縮成IE8-WindowsXP-x86-CHT.cab

http://www.pczone.com.tw/attachment.php?attachmentid=21148&stc=1&d=1290671210

http://www.pczone.com.tw/attachment.php?attachmentid=21149&stc=1&d=1290671210

http://www.pczone.com.tw/attachment.php?attachmentid=21150&stc=1&d=1290671210


http://www.pczone.com.tw/attachment.php?attachmentid=21151&stc=1&d=1290671445

12.使用copy指令將cab.sfx與IE8-WindowsXP-x86-CHT.cab合併成一個自解檔

http://www.pczone.com.tw/attachment.php?attachmentid=21152&stc=1&d=1290671445
copy /b cab.sfx+IE8-WindowsXP-x86-CHT.cab IE8-WindowsXP-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21153&stc=1&d=1290671445

13.使用hex軟體 編輯產生的IE8-WindowsXP-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21154&stc=1&d=1290671445
14.搜尋關鍵字update ---->實際上應該是搜尋update/update.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21155&stc=1&d=1290671445

http://www.pczone.com.tw/attachment.php?attachmentid=21156&stc=1&d=1290671210
15.搜尋到update/update.exe位址處 往前4位將20 00改為60 00
http://www.pczone.com.tw/attachment.php?attachmentid=21157&stc=1&d=1290671210

http://www.pczone.com.tw/attachment.php?attachmentid=21158&stc=1&d=1290671210
16.將編輯過的IE8-WindowsXP-x86-CHT.exe存檔
http://www.pczone.com.tw/attachment.php?attachmentid=21159&stc=1&d=1290671210

17.執行IE8-WindowsXP-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21160&stc=1&d=1290673229



:(:(:(:(:o:o:eye::eye::cry::cry::boldred::boldred:

失敗了

why

下面解答

purk
2010-11-25, 05:54 PM
上面失敗的原因如下

重新分析一下原始文章

http://www.msfn.org/board/topic/44639-sfxcabexe/

How to creat SFXCAB file.

1. Hex edit one update file.

再看一下

簡體版的參考文章

http://bbs.wmzhe.com/viewthread.php?tid=17580&rpid=147152&ordertype=0&page=1#pid147152

因此emoom的說法可能部分有誤 或者 是我軟體與做法弄錯

IE8 在大陸的封裝集成法,很不錯.

5.截取IE8壓縮檔頭.
6.將IE8.CAB和IE8壓縮檔頭合併.
如此一來,可得到和官方一樣之檔案.
安裝參數完全一樣.
而且不喜歡還可以在控制台內新增移除功能,把IE8移除.

引用自http://www.pczone.com.tw/post/1078509/7/

因此再測試一次

這次來仔細推敲英文原始的意思


one update file 是否指的是hotfix檔案 ?

再看一下簡體文章


用WinHex 编辑一个Windows的更新程序
好像真的是hotfix檔案 ?

用一個hotfix內容來看看----以IE8-WindowsXP-KB976662-x86-CHT為例

http://www.pczone.com.tw/attachment.php?attachmentid=21161&stc=1&d=1290677418
http://www.pczone.com.tw/attachment.php?attachmentid=21171&stc=1&d=1290677418
再來看看IE8-WindowsXP-x86-CHT.exe的內容
http://www.pczone.com.tw/attachment.php?attachmentid=21170&stc=1&d=1290677418
http://www.pczone.com.tw/attachment.php?attachmentid=21169&stc=1&d=1290677418

可以發現2個不太一樣
IE8-WindowsXP-KB976662-x86-CHT還有寫明Intstaller Engine
回到簡體文章


找到你需要在解压完文件后运行的程序,例如 update\setup.exe

所以這邊大致推測是用hotfix的檔頭

所以步驟繼續

同樣的用hex軟體開啟IE8-WindowsXP-KB976662-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21168&stc=1&d=1290677418


搜尋mscf
http://www.pczone.com.tw/attachment.php?attachmentid=21167&stc=1&d=1290677418
選取mscf後面的部分
http://www.pczone.com.tw/attachment.php?attachmentid=21166&stc=1&d=1290677418
http://www.pczone.com.tw/attachment.php?attachmentid=21165&stc=1&d=1290677418


刪除後面的部分
http://www.pczone.com.tw/attachment.php?attachmentid=21164&stc=1&d=1290677418





另存成cab.sfx
http://www.pczone.com.tw/attachment.php?attachmentid=21163&stc=1&d=1290677418
比較cab.sfx檔案大小是否正確
http://www.pczone.com.tw/attachment.php?attachmentid=21162&stc=1&d=1290677418
http://www.pczone.com.tw/attachment.php?attachmentid=21172&stc=1&d=1290677418

然後一樣使用copy指令將cab.sfx與IE8-WindowsXP-x86-CHT.cab合併成一個自解檔

http://www.pczone.com.tw/attachment.php?attachmentid=21152&stc=1&d=1290671445
copy /b cab.sfx+IE8-WindowsXP-x86-CHT.cab IE8-WindowsXP-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21153&stc=1&d=1290671445

使用hex軟體 編輯產生的IE8-WindowsXP-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21154&stc=1&d=1290671445
搜尋關鍵字update ---->實際上應該是搜尋update/update.exe ?
http://www.pczone.com.tw/attachment.php?attachmentid=21155&stc=1&d=1290671445

http://www.pczone.com.tw/attachment.php?attachmentid=21156&stc=1&d=1290671210
搜尋到update/update.exe位址處 往前4位將20 00改為60 00
http://www.pczone.com.tw/attachment.php?attachmentid=21157&stc=1&d=1290671210

http://www.pczone.com.tw/attachment.php?attachmentid=21158&stc=1&d=1290671210
將編輯過的IE8-WindowsXP-x86-CHT.exe存檔
http://www.pczone.com.tw/attachment.php?attachmentid=21159&stc=1&d=1290671210

執行IE8-WindowsXP-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21173&stc=1&d=1290679313

解壓縮後
http://www.pczone.com.tw/attachment.php?attachmentid=21174&stc=1&d=1290679313
怎麼要iesetup.exe

why

:(:(:(:(:o:o:eye::eye::cry::cry::boldred::boldred:

下面解答

purk
2010-11-25, 06:20 PM
上面說他要用iesetup安裝

只好再用hex軟體編輯IE8-WindowsXP-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21154&stc=1&d=1290671445
搜尋關鍵字update/iesetup.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21175&stc=1&d=1290679963

搜尋到update/iesetup.exe位址處 往前4位將20 00改為60 00

http://www.pczone.com.tw/attachment.php?attachmentid=21176&stc=1&d=1290679963
http://www.pczone.com.tw/attachment.php?attachmentid=21177&stc=1&d=1290679963

把之前改的update/update.exe位址處 往前4位將60 00改回20 00
http://www.pczone.com.tw/attachment.php?attachmentid=21178&stc=1&d=1290679963

http://www.pczone.com.tw/attachment.php?attachmentid=21179&stc=1&d=1290679963


將IE8-WindowsXP-x86-CHT.exe存檔
http://www.pczone.com.tw/attachment.php?attachmentid=21180&stc=1&d=1290679963

執行IE8-WindowsXP-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21182&stc=1&d=1290679963
http://www.pczone.com.tw/attachment.php?attachmentid=21181&stc=1&d=1290679963

成功了?


只能算是成功了80%


1.目前沒有辦法把hotfix內reg修正的部分加入

一但變更update.inf來加入hotfix的reg修正

會有驗證問題

2.文章內提到要使用update.exe當作安裝引擎來安裝

但目前還是使用iesetup.exe來安裝

還在想辦法中

purk
2010-11-30, 04:32 PM
1.IE8正式版的cab自解部分可能有加上驗證

可是目前缺少IE8_BETA時期的安裝檔案可以驗證此推論

不過改提取IE7正式版cab自解部分

效果如同從一般hotfix中提取出來的cab自解部分

都可以讓IE8重新封包可以安裝

2.查詢google過去文章有提到使用updata.exe安裝的部分

是在IE7時代 IE7開始時需要WGA驗證通過才可以安裝

但是剛時有人修改iecustom.dll繞過驗證達到可以安裝IE7

因此以下使用IE7_BEAT時代的iecustom.dll (版本7.0.5299.0)

放入IE8內測試

出現以下裝況

http://www.pczone.com.tw/attachment.php?attachmentid=21193&stc=1&d=1291105771
http://www.pczone.com.tw/attachment.php?attachmentid=21194&stc=1&d=1291105771
http://www.pczone.com.tw/attachment.php?attachmentid=21195&stc=1&d=1291105771
http://www.pczone.com.tw/attachment.php?attachmentid=21196&stc=1&d=1291105771
http://www.pczone.com.tw/attachment.php?attachmentid=21197&stc=1&d=1291105771

3.改使用IE7正式版的iecustom.dll (版本7.0.5730.13)

放入IE8內測試

出現以下裝況

http://www.pczone.com.tw/attachment.php?attachmentid=21198&stc=1&d=1291105771
http://www.pczone.com.tw/attachment.php?attachmentid=21199&stc=1&d=1291105771
http://www.pczone.com.tw/attachment.php?attachmentid=21200&stc=1&d=1291105771
http://www.pczone.com.tw/attachment.php?attachmentid=21193&stc=1&d=1291105771
http://www.pczone.com.tw/attachment.php?attachmentid=21201&stc=1&d=1291105771

這2種出現的畫面都顯示 其實是調用ie7的安裝核心來安裝ie8

所以目前可以知道要改使用updata.exe程序安裝IE8可能

1.beta版的ie8才可行

2.修改iecustom.dll 的某部分

emoom
2010-12-03, 12:03 PM
我的步驟沒有錯, 看來你只找到破解update.exe的方法,沒找到修改 update.inf方式.
ex.
[Version]
;MOD
; CatalogFile = %SP_SHORT_TITLE%.cat
CatalogFile = ie8.cat, KB976662-IE8.CAT,KB981332-IE8.CAT,KB2360131-IE8.CAT,KB2447568-IE8.CAT


[Configuration]
AppFileInUseDetect = 7
;MOD
; CustomizationDLL = iecustom.dll


;MOD
; UninstallCustomizationDLL = update\iecustom.dll


[ProductCatalogsToInstall]
;MOD
; %SP_SHORT_TITLE%.cat,update\%SP_SHORT_TITLE%.cat
ie8.cat,update\ie8.cat

purk
2010-12-03, 12:34 PM
我的步驟沒有錯, 看來你只找到破解update.exe的方法,沒找到修改 update.inf方式.
[Configuration]
AppFileInUseDetect = 7
;MOD
; CustomizationDLL = iecustom.dll



多謝emoom兄提供

我這幾天就是在推論是哪個檔案引導使用iesetup.exe去安裝ie8的

有推測到跟iecustom.dll有關聯

也有猜想到可能是inf或cab檔案內有關

多謝emoom兄的提供

要改用update.exe安裝就是要去除iecustom.dll部分

所以註解掉 ; CustomizationDLL = iecustom.dll

purk
2010-12-03, 09:14 PM
17.執行IE8-WindowsXP-x86-CHT.exe
http://www.pczone.com.tw/attachment.php?attachmentid=21160&stc=1&d=1290673229



:(:(:(:(:o:o:eye::eye::cry::cry::boldred::boldred:

失敗了

why

下面解答找到問題點

ie8的sfxcab為6.3.15.0

與6.3.13.0版本一樣

有些微的驗證?

不過搜尋rsrc後

於後面第15位為01

將數值修改為 00

這樣就pass過檢驗

wja12345
2010-12-05, 07:14 PM
看起來好像蠻長的...
先來備份一下~