安装程序Repack攻略之MSI篇

 

 

引用http://mt25cyb.bokee.com/3924236.html

 本文主要讨论使用微软的开发工具 orca 和 msidb 进行 MSI 安装包的修改封装.

下面是我对 MSI 的基本情况的认识,如果只想了解怎么进行 Repack,也可以跳过这一部分。


MSI 概述
MSI 最基本的部分是对安装程序的一个描述,包含了一个所谓安装信息数据库,涉及到安装界面、所使用的文件、快捷方式、INI文件、注册表、以及版本控制和反安装信息等。

对于安装时所使用到的文件,MSI 可以有 3 种方式来处理:
  1. 文件随同安装程序以原生态发布
  2. 文件压缩成 Data.cab 的形式随安装程序发布
  3. 文件压缩成 .cab 文件后注入到 .msi 文件中

显而易见,一般安装程序很少以第一种方式发布,而第二种和第三种比较常见。

对于注入到 .msi 文件中的情况,需要首先用 orca 找出 Media 的描述值,然后用 msidb 将 .cab 从 .msi 中抽取出来,如果直接以 Data.cab 形式发布就可以省去这一步操作。

如果要添加移除或是替换 .cab 中的文件,需要先用 orca 找出文件对应的描述值(可能就是文件名本身或是一串HEX编码抑或两者的结合),然后将 .cab 文件解包,按照描述值的文件名来操作文件后再用 cabarc 重新打包回去。

如果 .cab 是从 .msi 抽取的,再用 msidb 重新编入。



本文以修改 RemotelyAnywhere.msi 为例进行操作说明,目标是用 RemotelyAnywhere 补丁替换安装包中的原文件,同时将购买的许可协议集成在安装包内,达到安装完毕后直接可以使用的效果:

1. 使用 orca 打开 RemotelyAnywhere.msi ,选择 TOOLS 菜单的 OPTIONS 命令,切换到 DATABASE 面板,勾

选“Generate a unique Package Code each time a database is saved”,然后执行 File 菜单的 Save as 命令,把 RemotelyAnywhere.msi 文件另存为 ra.msi 文件。

2. 使用 orca 打开 ra.msi ,在左侧 Tables 中选择 Media ,在右侧 Cabinet 列可以看到压缩包名称为 #data.cab ,记下,关闭 orca。

3. 使用 msidb 从 ra.msi 中提取 data.cab:

代码:
msidb.exe -x data.cab -d ra.msi

4. 将 data.cab 中的文件展开:
代码:
·建立 files 目录
md files

·展开文件到 files
expand data.cab -F:* files

·删除 data.cab

5. 将补丁文件 RemotelyAnywhere.exe 复制到 files 目录中覆盖原文件。

6. 将文件重新打包成 data.cab :
代码:
cabarc.exe -m LZX:21 -r N data.cab "files/*"

7. 将 data.cab 编入 ra.msi 中:
代码:
msidb.exe -a data.cab -d ra.msi

8. 使用 orca 打开 ra.msi ,在左侧 Tables 中选择 Registry ,在右侧工作区点右键,选择 Add Row,按以下内容输入各列:
代码:
[Registry]  REGISTRY_LICENSE
[Root]      2
[Key]       Software/RemotelyAnywhere/V5
[Name]      License
[Value]     -----BEGIN LICENSE-----
PRODUCT           RemotelyAnywhere...
[Component] Service_Files


这里是自己的编撰了一个注册表项用于安装时自动输入许可文件,Value 栏的内容就按你购买的 License 的内容输入即可。

9. 使用 orca 保存完成后的 MSI,收工。

PS: 本文中因为只涉及替换文件,所以没提及增减文件的操作,如果有需要这方面的操作,首先应在操作 cab 包时增减文件,并用 orca 打开 msi 文件对以下数据表项进行调整:FeatureComponents、File,具体操作在此不赘述,遇到具体案例时可以联系我,到时根据实战再修改此贴。

TIPS: 如果安装程序是由 Setup.exe Data1.cab 等一系列文件组成的,你还可以使用 InstallShield 的 Pakage For The Web 来将其打包成单个文件,同样,如果原始安装程序是 InstallShield 制作的单个文件,不妨试一试用右键打开,WinRAR 可以将其解压还原出多个文件。

文中提及的工具:CabArc 
                      msidb
                      orca

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RemotelyAnywhere是一个操作简单但功能强大的NT远端管理程序,只要在服务器端安装该软件,那么您在远程客户端只要使用一个支持 Java 的浏览器就可以控制该服务器。现在有了RemotelyAnywhere,即使您人身处国外,也可以透过TCP/IP的连线方式来远端遥控您所负责管理的NT主机喔!   但是可惜的是,自从 RemotelyAnywhere V6 版本之后,网络上再也没有相关后续版本的破解或授权,导致很多网友因使用来路不明远程控制软件而被杀软件清除,并带来很多不必要的困扰。由于本人工作的需要,平时需要对多台不同系统的服务器进行远程维护或管理,通过本人的努力,终于将该软件的 V8.0.0.747 版本和最新的 V9.1.0.1016 完全破解,并编写了相应的授权文件。   介于 RemotelyAnywhere 最新的V9版在实际使用中,发现其在界面和功能上并不如V8的版本的界面清晰、简单易用,所以本人目前只发布V8最新版本的破解补丁!!   破解补丁使用方法:   1、从官方下载最新的RemotelyAnywhere V8 服务器版本,并安装;    下载地址:http://www.remotelyanywhere.com/download.asp?product=files/RemotelyAnywhere8.0.747.zip   2、安装结束后,首先从“系统服务”中停止“RemotelyAnywhere”和“RemotelyAnywhere Maintenance Service”两服务,然后将 RemotelyAnywhere.dll 拷贝到安装目录“C:\Program Files\RemotelyAnywhere\x86”中,覆盖原文件;   3、启动刚才停止的两个服务,然后从开始菜单中运行RemotelyAnywhere,在打开的控制台中选择“激活RemotelyAnywhere”的链接,用本机的管理员账号从浏览器登录后,即可出现“欢迎使用RemotelyAnywhere”的页面,选择“我已是 RemotelyAnywhere 用户或已具有 RemotelyAnywhere 许可证”,点击下一步,将“授权文件”中的内容复制粘贴到授权文本框中,点击下一步,即可完成注册;
【服务器版注册码】: -----BEGIN LICENSE----- PRODUCT RemotelyAnywhere PRODUCTTYPE SERVER EDITION VALIDFORVERSION 11 ISSUER LogMeIn, Inc. ISSUERID 1060-4b81-0781-f51c ISSUEDATE 2011-03-11 ISSUEREASON PURCHASE LICENSEID 376D-9BE4-5FFE-874D LICENSETYPE COUNTED UPG.INS.UNTIL 2258-03-11 LICENSECOUNT 99999999 LICENSEETYPE CORPORATE LICENSEE Chen YanShao LICENSEE Chen YanShao LICENSEE CYS158 -----END LICENSE----- -----BEGIN PKCS7----- MIHbBgkqhkiG9w0BBwKggc0wgcoCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEH ATGBqjCBpwIBATBGMEExCzAJBgNVBAYTAkhVMRwwGgYDVQQKExMzYW0gTGFib3Jh dG9yaWVzIFBMMRQwEgYDVQQDEwtNYXJ0b24gQW5rYQIBADAJBgUrDgMCGgUAMA0G CSqGSIb3DQEBAQUABEBfO+bFdezSyhoYJGTzrAbNioMU7/6V/kewlIMo5F7+/yth FuN45bD9ycHpPA+PqMR0etD9M6HHcX9AvxKUTzrR -----END PKCS7----- 【工作站版注册码】: -----BEGIN LICENSE----- PRODUCT RemotelyAnywhere PRODUCTTYPE WORKSTATION PRO VALIDFORVERSION 11 ISSUER LogMeIn, Inc. ISSUERID 1060-4b81-0781-f51c ISSUEDATE 2011-03-11 ISSUEREASON PURCHASE LICENSEID D17A-0A97-B4AE-FF72 LICENSETYPE COUNTED UPG.INS.UNTIL 2258-03-11 LICENSECOUNT 99999999 LICENSEETYPE CORPORATE LICENSEE Chen YanShao LICENSEE Chen YanShao LICENSEE CYS158 -----END LICENSE----- -----BEGIN PKCS7----- MIHbBgkqhkiG9w0BBwKggc0wgcoCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEH ATGBqjCBpwIBATBGMEExCzAJBgNVBAYTAkhVMRwwGgYDVQQKExMzYW0gTGFib3Jh dG9yaWVzIFBMMRQwEgYDVQQDEwtNYXJ0b24gQW5rYQIBADAJBgUrDgMCGgUAMA0G CSqGSIb3DQEBAQUABEAOa7PUzIrRMXdlMS9bSrc8jTAUHUlCtvn42TaswsNGSBq8 zLOvRSSiCvNffyOZIZYr/6Ofa6NKwspnW0w7/obe -----END PKCS7-----
### 回答1: winrar_v6.21_x64_sc_repack是WinRAR软件的一个版本。WinRAR是一款非常流行的压缩文件管理工具,适用于Windows操作系统。 这个版本的WinRAR是专为64位的操作系统设计的,具有较高的性能和兼容性。其中的“sc”是指将软件进行了重新打包处理,以便更好地适应用户的需求。 WinRAR可以对文件文件夹进行压缩和解压缩操作,支持多种压缩算法,如RAR和ZIP等。它不仅可以将文件文件夹压缩成一个更小的文件,还可以对压缩文件进行加密保护,确保文件的安全性。 同时,WinRAR还具有提取和修复损坏的压缩文件的功能,可以很好地解决文件损坏或丢失的情况。此外,WinRAR还可以将压缩文件拆分成多个部分,以便于存储和传输。 使用WinRAR,用户可以轻松地浏览和管理压缩文件,在不解压缩的情况下预览和提取文件。它还具有一些高级功能,如创建自解压缩文件、添加注释、设置压缩密码等。因此,WinRAR成为了广大用户进行文件压缩和解压缩的首选工具。 总之,winrar_v6.21_x64_sc_repack是一款用于64位Windows操作系统的重新打包版本的WinRAR软件,它提供了强大而且方便的文件压缩和解压缩功能,以及其他一些高级功能,是广大用户进行文件管理的重要工具。 ### 回答2: winrar_v6.21_x64_sc_repack是WinRAR的一个版本,它是经过重新打包的版本。WinRAR是一款功能强大的压缩文件工具,它可以帮助用户压缩和解压各种不同格式的文件。 winrar_v6.21_x64_sc_repack版本针对64位系统进行了优化,因此可以在64位操作系统上更好地发挥其功能。它提供了一些新的功能和改进,以增强用户的使用体验。 通过WinRAR,用户可以选择不同的压缩算法来对文件进行压缩,从而最大限度地节省存储空间。此外,它还支持创建自解压的压缩文件,方便将文件分享给其他人,而无需他们安装WinRAR。 除了压缩和解压缩功能外,WinRAR还允许用户设置密码来保护压缩文件的安全性。用户可以创建加密存档来确保文件只能被授权的人访问。 此外,WinRAR还提供了一个功能强大的文件管理器,允许用户在压缩文件中查看、添加、删除和修改文件。它还可以方便地浏览压缩文件的内容,而无需解压缩整个文件。 总结而言,winrar_v6.21_x64_sc_repack是经过重新打包的WinRAR版本,它提供了强大的压缩和解压缩功能,还具有文件管理和安全性保护等特点,使用户可以更好地管理和处理各种文件。 ### 回答3: winrar_v6.21_x64_sc_repack是一个压缩文件管理工具,它是WinRAR软件的一个特定版本。这个版本是专为64位操作系统设计的。 "sc"表示该版本为简体中文界面,"repack"表示该版本为重新打包的版本。 WinRAR是一个广泛使用的压缩文件工具,用于创建、打开、管理和提取文件。它支持多种压缩文件格式,包括RAR、ZIP、CAB、7Z等等。通过使用WinRAR,用户可以将大文件压缩成较小的文件,以便更好地存储、发送或传输。 winrar_v6.21_x64_sc_repack版本针对于使用64位操作系统的用户,因为64位操作系统可以更好地处理大量的数据和更高的内存容量。相比于32位操作系统,64位操作系统具有更强大的性能和更高的效率。 此版本还特别为简体中文用户设计,使得用户界面可以以简体中文显示,方便使用者理解和操作。通过选择简体中文界面,用户可以更容易地查看和管理压缩文件,而无需通过翻译或其他辅助手段。 最后,"repack"表示该版本是重新打包的,可能包含一些更新的修复和改进。重新打包的版本通常是基于先前的版本,并进行了一些调整和改进,以提供更好的用户体验和性能。 总的来说,winrar_v6.21_x64_sc_repack是一个针对64位操作系统的简体中文版本的WinRAR软件,它带来了更好的性能、更好的界面和一些修复和改进。用户可以使用它来处理、管理和提取各种压缩文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值