关于.cab包的问题

lym230510 2004-05-14 05:16:40
我有一个a.cab包 我要实现:
首先解开这个包(已经实现了)
例如这里包含5个文件 现在我把这个文件夹里添加一个文件
这个文件夹变成6个文件
然后再把他转换成a.cab
请问我用什么软件把他转换成a.cab包
我下载了几个转换以后 ,没有数字验证那项,不能读取这个a.cab包了
哪位用过这个请指点一下小弟,在这里先谢谢了!!
...全文
223 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
歪歪 2004-05-14
  • 打赏
  • 举报
回复
Internet 部件下载的高级自定义


可以做以下事情来自定义您的文件下载,其中包括:

修改工程的.inf 文件。如果要包括有关安全设置的信息或对您部件的外部评论,您可能会选择这样做。


修改工程的.ddf 文件。如果您已经在下载中添加了任何附加文件,或已经修改了您的 .inf 文件,则您需要这样做。


手工重新生成.cab 文件。如果您修改了 .inf 文件或 .ddf 文件,则需要这样做。
以下章节将详细描述这些操作。

修改 .inf 文件
可以通过修改 .inf 文件自定义安装过程。修改后的文件可以包括在手工重新生成的.cab 文件中(使用 .ddf 工程文件),或直接由 OBJECT 标记的 CODEBASE 属性引用。

注意 可以在 CODEBASE 属性中使用.inf文件,但应尽量避免这样做。因为 .inf 文件不能有数字签名,如果在此使用,将会引起您对 .inf 引用的所有编译好的文件(例如 .ocx 文件)进行数字签名。这将会要求您对每一个可执行文件分别签名和部署,而不是只对将所有文件打包的.cab 文件进行签名。

对 .inf 文件的典型修改有:

添加许可证书。


添加自述文件。


添加其他的文档。
注意 作为 ActiveX 控件的开发者,您可以修改 Internet 部件下载文件。但必须注意,如果这样做的话,进行修改的人员或公司要为此负责。有些更改表明您所做的更改是正确而可信的。另外,在许可证书协议中要避免使用“如同”或“可适用性”子句,可能有些法庭会认为这些句子是无效的。

.inf 文件示例
以下是 .inf 文件的示例:

;用于ControlDemo.ocx的inf 文件
;DestDir 对 Windows 目录可以是 10,对 Windows\System(32) 目录可以是11,对 Occache 或 Downloaded Program Files 目录可以为空。

[version]
signature=$CHICAGO$

[Add.Code]
CONTROLDEMO.OCX=CONTROLDEMO.OCX
MSVBVM60.DLL=MSVBVM60.DLL

[CONTROLDEMO.OCX]
file-win32-x86=thiscab
RegisterServer=yes
clsid={F651BF93-239B-11D0-8908-00A0C90395F4}
DestDir=
FileVersion=1,0,0,1

[MSVBVM60.DLL]
hook=MSVBVM60.cab_Installer
FileVersion=5,1,43,19

[MSVBVM60.cab_Installer]
file-win32-x86=http://activex.microsoft.com/controls/vb6/MSVBVM60.cab
InfFile=MSVBVM60.inf

重点 只有最初的控件开发者才有权标记控件的安全性。不能随便标记别人控件的安全性。更改控件的安全性将会引起侵权和法律诉讼。

在 .inf 文件中添加版本信息
可以使用 .inf 文件指定部件的版本。.inf 文件中应包括一部分指定文件的版本及与 <OBJECT> 标记中相同的类标识符。

如下列示例所示,该文件部分指定了要下载的 ActiveX 控件的版本:

[circ3.ocx]
; 下列行指出指定的 Circ3.ocx (clsid,
; version) 需要安装在系统中。如果没有安装,
; 则可以从给定的位置 (a .cab) 下载。
NOTE:
; 如果指定了 "thiscab" 来代替文件位置,则
; 假设所需的文件在同一个 .cab 压缩文件中,.inf文件正是由该 .cab 文件得来的。
; 如果位置指向一个不同的
; .cab,则那个压缩文件也将被下载并打开
; 以便展开希望的文件。

file=错误!未找到引用源。
clsid={9DBAFCCF-592F-101B-85CE-00608CEC297B}

; 注意,当在该 .inf 文件中输入时, {}s 是必需的。
; 这与 HTML 语法在<OBJECT>标记中插入
; CLSID 稍有不同。

FileVersion=1,0,0,143

修改 .ddf 文件
如果修改了 .inf 文件或在 Support 目录中将控件数字签名,则需要修改 .ddf 文件。同时需要验证添加到 .inf 文件中的任何文件也同时添加到了 .ddf 文件中,否则安装时将找不到这些文件。

以下是一个打包和展开向导生成的 .ddf 文件

.OPTION EXPLICIT
.Set Cabinet=on
.Set Compress=on
.Set MaxDiskSize=CDROM
.Set ReservePerCabinetSize=6144
.Set DiskDirectoryTemplate=
.Set CompressionType=MSZIP
.Set CompressionLevel=7
.Set CompressionMemory=21
.Set CabinetNameTemplate="ControlDemo.cab"
"C:\Website\Cabfiles\ControlDemo.inf"
"C:\ControlDemo\ControlDemo.ocx"

.ddf 文件中以下条目不能改动:

条目 描述
MaxDiskSize=CDROM 允许 .cab 文件可以为所需要的任意大。
ReservePerCabinetSize=6144 为数字签名保留空间。


手工生成 .cab 文件
每次修改与 .cab 文件相关联的 .inf 或 .ddf 文件后都要重新生成 .cab 文件。要重新生成 .cab 文件,需要使用 Microsoft 的压缩文件生成器(Cabinet Builder),Makecab.exe。该文件通常放在 \VB\Setupkit\kitfil32 中。

重新生成 .cab 文件的最简便的方法是对工程中现有的 .ddf 文件使用以下命令:

makecab /f yourcontrolname.ddf

压缩文件生成器产生两个附加信息文件,setup.inf 和 setup.rpt。

详细信息 修改与 .cab 文件相关的文件的详细信息,请参阅 Microsoft Developer's Network。有关.inf 文件的详细信息,请参阅 Microsoft的 Visual C++ 和 MSDN Library CD-ROM 中包含的有关文档。
歪歪 2004-05-14
  • 打赏
  • 举报
回复
ActiveX 部件的数字签名

Internet Explorer 的缺省安全设置要求任何可下载的软件在下载之前必须拥有一个数字签名。数字签名能用于对以下内容进行核实:
文件的内容。
文件有可靠的来源。
签名提供了一种验证文件内容的方法,该方法确保该文件在可用于下载后未被改变过。数字签名通过标识创建软件的合法实体来验证来源。当您在可下载的软件中加入了签名,您就是合法实体。合法实体应该为签名软件被下载时或运行后所造成的损失负责。

应被签名的软件
有五种类型的文件可以使用数字签名:
.exe 文件
.cab 文件
.dll 文件
.ocx 文件
.vbd 文件
如果提供以上类型的文件下载,就应为其设置数字签名。

注意 通常,只要在部件打包后的 .cab 文件中进行签名就足够了。然而,如果要发行的 .ocx、.exe、.vbd 或 .dll 文件没有打包在 .cab 文件中,就要单独为其进行签名。

您可以通过向认证机构购买证书来获得数字签名。认证机构是一个确认身份并发行认证证书的公司。证书中包含您的数字签名,是您信用的验证。一旦出现问题,认证机构将成为您身份的见证人。

公用密钥与私用密钥
在使用数字签名时要使用 Authenticode 技术。Authenticode 的目的是通过建立责任制来阻止有害代码的发行。Authenticode 将验证发布代码的发行人的身份给要下载这份代码的 Internet 最终用户。此外,Authenticode 可以为用户确保该代码在签名后未被改动。

Authenticode 技术来源于公用密钥签名技术。该技术使用了密钥对来加密数据。密钥对用于文件的加密和解密。在公用密钥技术中,公用密钥和私用密钥确保了文件的私有性。公用密钥用于加密数据,而私用密钥则用来解密数据。尽管该技术用于保护诸如电子邮件之类的小文件是很成功的,但是对于大文件,这一过程却是非常消耗时间的。Authenticode 正是这种技术的一种改进形式,专供大文件使用。

Authenticode 与签名
以下是 Authenticode 过程中的一些步骤:

在开发者对文件签名时,要计算一个哈希数。哈希数表示文件的总字节长度。该数字用私用密钥加密并插入到文件中。然后,开发者将文件进行打包并将其部署到 Web 服务器上。


当用户下载或安装文件时,他们的计算机计算第二个哈希数,并同原先的进行比较。如果数字相同,则文件的内容就得到了验证。


浏览器使用公用密钥来决定您的身份和提供数字签名的认证机构。


认证机构核实开发者的身份,并将包含经私用密钥加密的开发者名字的证书授予开发者。


浏览器使用私用密钥将文件解密。然后进行安装。
ActiveX SDK 中有用于数字签名的 Authenticode 软件工具,用户可以从 Microsoft的 Internet 站点上下载。数字签名必须从发行机构获得,例如 GTE 和 VeriSign 公司。

详细信息 关于如何下载 ActiveX SDK 的详细信息请参阅您 MSDN Library CD-ROM 上的 Internet Client SDK,或 http://www.microsoft.com/workshop/prog/inetsdk/。有关公用和私用加密的详细信息,请在 Internet 上搜索 RSA 或公用密钥签名。

证书的保护
由于您的公司要为所有使用签名的文件负责,而不论签名是否经过授权,所以确保您证书的安全非常重要。您应该将证书保存在发行证书的认证机构中,将文件送去签名。如果将证书保存在自己的站点上,应严格控制其存取权限。

详细信息 要获得有关安全和数字签名的最新技术资料,请访问 Microsoft Web 站点http://www.microsoft.com/security 上的 Microsoft Security Advisor 表中的 Authenticode 链接。

如何为代码签名
您可以对任何要发行的 .ocx、.exe、.dll、.vbd 或 .cab 文件进行签名。为代码签名主要有两步。首先,必须申请证书,然后再进行签名。

要为您的代码签名,请按以下步骤执行:

向认证机构申请证书。请访问http://www.microsoft.com/workshop/prog/security/authcode/certs.htm,以获得有关如何获得证书的指导。

从http://www.microsoft.com/workshop/prog/sdk/ 上获取 ActiveX SDK 的最新版本。其中包含您对代码签名所需要的工具。


准备要签名的文件。如果对.exe、.ocx、.vbd 或.dll 文件签名,您不需要做任何特别的事情。如果对.cab 文件签名,您必须将以下条目添加到 .ddf 文件中,并重新生成.cab 文件:
.Set ReservePerCabinetSize=6144

使用 ActiveX SDK 中的工具对文件签名。下面是对文件签名的一个示例:
Signcode -prog myfilename -name displayname -info http://www.mycompany.com - spc mycredentials.spc -pvk myprivatekey.pvk

测试签名:
要测试一个签了名的.exe、.dll、.vbd 或.ocx 文件,请运行 chktrust filename
filename 是您签了名的文件。


要测试一个签了名的.cab 文件,请运行 chktrust -c cabfilename.cab
cabfilename 是您签了名的 .cab 文件。
如果签名成功,以上任何一步测试都会显示证书。
芝城游侠 2004-05-14
  • 打赏
  • 举报
回复
winrar就可以做成.cab的文件

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧