|
|
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://wmzhe.blogbus.com/logs/18948915.html
思路是这样的:
1、用WinHex编辑一个更新程序,删除文件 MSCF 之后的所有内容,保存 -> cab.SFX;
2、make cab压缩你需要的文件 -> files.cab;
3、用命令行合并文件 -> files.exe
copy /b cab.sfx+files.cab files.exe
4、用WinHex编辑得到的files.exe,找到你要运行的程序,例如 setup.exe ,在 setup.exe 之前会有一个 20 00 的标记,改成60 00,然后保存运行即可。
来源于http://www.msfn.org/board/SFXCABEXE-t44639.html 早上向小三请教时他翻译过来的。
以我打包IE7安装程序为例,下面是图解:
1、用WinHex 编辑一个Windows的更新程序,利用查找功能,找到 MSCF 标记;

2、删除从 MSCF 开始,直到文件结束的所有内容,另存为 -> cab.SFX;




确认SFX文件大小是否一致: 
3、用准备好的WMZ_IE7.cab文件
用命令行合并文件 -> WMZ_IE7.exe:
copy /b cab.sfx+WMZ_IE7.cab WMZ_IE7.exe
另外,也可以用 WinHex 打开需要转换的cab文件,将所有数据粘贴在sfx末尾,保存后直接生成 WMZ_IE7.exe。这样麻烦一点。


4、关键部分!最后用 WinHex 编辑生成的 WMZ_IE7.exe,找到你需要在解压完文件后运行的程序,例如 update\setup.exe 。在 update\setup.exe 之前会有一个 20 00 的标记,改成 60 00,然后保即可。



