• OCX控件打包成CAB并实现数字签名过程


    OCX打包CAB并签名过程

    一、打包cab

    制作cab文件时需要将所有的相关文件都包含进去,可以通过Depends(VC自带的)检查需要的文件。使用inf文件将这些东西都写进去。

    1、制作inf文件

    default.INF

    最开始一般是[Version]区:

    eg: [Version]

    signature=" $CHICAGO$ "

    AdvancedINF=2.0

    接下来就是最重要的[Add.Code]区:

    eg: [Add.Code]

    getcertocx.ocx=getcertocx.ocx

    前面是要下载的文件名,后面是对应这个文件的区域名,可以是任何名字,不过一般都是和文件的名字相同,这样方便维护。

    再接下来是各个文件的区域了

    [getcertocx.ocx]

    file-win32-x86=thiscab

    RegisterServer=yes

    clsid={0A0488CF-F9AB-4AC4-AD8F-CD893553DD22}

    DestDir=11

    FileVersion=1,0,0,1

    [getcertocx.ocx]区域中的第一个file值告诉ie到哪里去得到这个ocx,file一共包括三个部分,第一部分是file,这个永远都是这样的;第二部分告诉声明支持的OS,win32表示windows,mac就是苹果MAC OX了;第三部分是CPU类型,比如说x86、mips等

    file的值可以取三个:一个URL、ignore和thiscab,如果是URL则说明到URL所在的位置去下;如果是ignore说明对于这种OS和CPU,不需要下载这个文件;如果是thiscab就在当前的cab文件中了。

    第二部分是RegisterServer,可以取两个值yes和no,如果为yes则说明ie要注册该ocx,如果是no就不必了;

    接下来是clsid,需要填写该ocx的class guid。

    再下来是DestDir,它的值是ocx将要存到本地硬盘的位置,如果它的值是10,则将ocx放到\Windows或者\WinNT下;如果是11,则放到\Windows\System或者

    \WinNT\System32下;如果是空(就是没有值)则会放到\Windows或者\WinNT下的Downloaded Program Files目录下;

    最后是FileVersion,说明了ocx的版本号。

    2、制作cab文件

    利用iexpress.exe(windows提供的一个向导式cab制作工具)

    选“创建新的自解压缩指定文件”,点“下一步”。

    选“仅创建压缩文件(ActiveX安装)”,点“下一步”。

    点“添加”将上边制作好的default.inf和getcertocx.ocx文件添加进来,点“下一步”。

    点“浏览”输入要生成的CAB文件名称,并选中“在软件包中使用长文件名保存文件”,之后点“下一步”。

    选“不保存”,点“下一步”。

    点“下一步”。

    点“完成”退出向导,cab文件生成。

    二、对cab文件进行签名

    利用signtool.exe对cab文件进行签名,通过后缀参数:signwizard可以显示数字签名向导界面。

    点“下一步”。

    点“浏览”选要签名的cab文件,文件类型选“Cabinet 文件(*.cab)”,选完以后点“下一步”。

    选“典型”,点“下一步”。

    点“从存储区选择”,选择预期目的为“代码签名”的证书,然后点“下一步”。

    “描述”和“Web位置(可选)”填写签名数据的描述,点“下一步”。

    选中“将时间戳添加到数据中”,在时间戳服务URL栏写入:

    http://timestamp.verisign.com/scripts/timstamp.dll

    点“下一步”。

    点“完成”。

    点“确定”。

    点“确定”退出数字签名向导,对应的getcert.CAB文件已被签名。

    可以右键点击“getcert.cab”,选“属性”,查看“数字签名”信息。

    三、签名证书的申请

    可以到http://www.ca365.com/网站免费申请证书

    点“用表格申请证书”,弹出“申请免费证书页面”,“识别信息”可以随意填写,“证书用途”要选择“代码签名证书”,“加密服务提供”是用微软提供的“Microsoft String Cryptographic Prover”,其他默认,点“提交”即可。

  • 相关阅读:
    js判断选择时间不能小于当前时间的代码
    shell脚本编程之for语句、if语句使用介绍
    linux命令 chattr超级权限控件
    教你配置linux服务器登陆欢迎信息
    PHP基础入门教程 PHP循环函数
    php获取客户端ip地址
    PHP获取域名、IP地址的方法
    两日期间的间隔
    mysql 案例 ~ pt-archiver 归档工具的使用
    mysql 案例 ~ pt修复工具的使用
  • 原文地址:https://www.cnblogs.com/rushoooooo/p/2087542.html
Copyright © 2020-2023  润新知