zoukankan      html  css  js  c++  java
  • 制作CAB包

    制作CAB包

    inf文件

    INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。

    给硬盘(U盘)DIY一个可爱的图标

    接着打开记事本程序,录入以下内容:

    [autorun]
    ICON=******.ICO
    

    其中“******”是图标文件的路径及图标文件名,请自行修改为具体的图标文件的路径及图标文件名。录入完毕,另存为“Autorun.inf”,并将其剪切到某一个你欲扮酷的分区的根目录下。

    在命令行下安装INF文件

    通常情况下,我们都是在Windows环境下安装INF文件的,但是假如有一天,你需要在命令行运行INF文件该怎么办呢?

    在命令行提示符后输入“ rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 INF文件所在的路径及文件名.inf ”,回车后即可安装相应的INF文件。

    [pre]再提供两个方法:

      方法1. 运行RunDll32 advpack.dll,LaunchINFSection YOUINF.inf,DefaultInstall

      方法2.修复右键安装

      操作步骤如下:

      打开我的电脑,“工具”菜单中的“文件夹选项”。切换至“文件类型”选项卡,在其中找到inf文件,点高级按钮,双击“安装”(如没有“安装”就添加一个),按如下内容修改

      用于执行操作的应用程序:

      C:WINDOWSSystem32 undll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1

      点选使用DDE(U)

      应用程序(C):

      setupapi

      主题(T):

      System

      确认!

      然后再次右键点选inf文件安装。

    编写inf文件

    ; Sample INF file for IMES.DLL
    
    ;分号后为注释
    
    [version] 
    ; version signature (same for both NT and Win95) do not remove
    
    ;在该节中如果出现“signature="$CHICAGO$"”这样的条目则表示该INF文件适用于Windows 98之后的所有操作系统,如果包含“signature="$Windows NT$"”这样的条目则表示该INF文件适用于Windows 2000/XP/2003操作系统,而且两者必具其一
    
    signature="$CHICAGO$"
    AdvancedINF=2.0  
    
    [Add.Code]
    Editor.ocx = Editor.ocx
    
    ; needed DLL
    
    [Editor.ocx]
    file=thiscab
    clsid={8BB4EE5B-5919-11D1-A01A-0060971932BC}
    RegisterServer=yes
    FileVersion=5,0,1,7
    
    ; end of INF file
    

    将ActiveX控件进行打包并加数据鉴名的工具集:

    • Cabarc.exe 将ocx打包成cab
    • Cert2spc.exe 将cer格式证书转换成spc格式证书, 即PKCS#7证书
    • Certmgr.exe 是管理证书用的
    • Chktrust.exe 检查签署证书后的ocx是否正确
    • Makecat.exe
    • Makecert.exe 制作cer格式的证书, 即X.509证书, 同时可以创建私钥和公钥
    • Makectl.exe
    • Signcode.exe 将证书签署到ocx上

    工具集下载:makeCAB.rar

    制作CAB文件

    • CMD 输入 iexpress,将启动Iexpress向导
    • 选中"Create new Self Extraction Directive file"
    • 选择"Create compressed files only(ActiveX Installs)"
    • 添加INF文件中所列所有文件(DLL及DEF等)
    • 单击"下一步(N)",单击Browse按钮选择RemtCard.CAB文件,同时选中 “Store files using long Name inside Package”checkbx
    • 选择"Don't save"
    • 单击完成按钮将同时生成RemtCard.CAB文件

    执行
    CABARC -s 6144 n RemtCard.cab ocx文件.ocx inf文件.INF

    生成RemtCard.CAB文件

    自制数字证书

    用CMD进入到控件所在的目录;

    创建PVK文件(私人密匙文件),CMD输入makecert -$ "individual" -r -sk RemtCard RemtCard.pvk -n CN=XXXXXXX

    创建CER文件(公司证书),CMD输入“makecert -sk RemtCard.pvk RemtCard.cer”,然后回车,在相对目录下会出现一个安全证书

    创建SPC测试软件出版商证明书,CMD输入“cert2spc RemtCard.cer RemtCard.spc”

    执行

    makecert -cy both -d RemtCard -n CN=xxxx有限公司 -sv RemtCard.pvk RemtCard.cer
    Cert2SPC RemtCard.cer RemtCard.spc
    

    文件数字签名

    在CMD中运行signcode

    选择RemtCard.CAB

    选择好RemtCard.CAB文件后单击"下一步(N)"按钮,在选择想要的签名类型里选择"自定义(C)"按钮

    单击"从文件选择(F)"按钮,选择刚制作的RemtCard.cer

    选择"CSP中的私钥(K)"

    容器密匙选择RemtCard.pvk

    在散列算法中选择"md5"

    "证书路径中的证书"中选择"证书路径中的所有证书,包括根证书(C)",在"其它证书(可选)”中选择“包括在以下PKCS #7 证书(.p7b)文件中的证书(P):"”,并单击"浏览(R)…"按钮选择RemtCard.spc文件

    "数据描述"窗口中输入公司的名称及网址并单击"

    执行

    signcode.exe -spc RemtCard.spc -v RemtCard.pvk -n RemtCard1.0.0.1 -i www.xxx.com.cn  RemtCard.cab
    

    activeX插件安装升级

    <object codebase="http://localhost/RemtCard.cab#version=1,1"CLASSID="CLSID:8BB4EE5B-5919-11D1-A01A-0060971932BC"…/>	
    

    参考:

  • 相关阅读:
    新建一个线程作为服务端
    设置并查看pthread创建线程时传入参数中堆栈大小值
    libevent2.0.22备忘录
    Centos7如何切换启动的内核
    svn常见问题及解决方法
    nodejs monk对接mongodb密码全过程
    百万并发的长连接是否会耗尽反向代理的端口号
    Linux文件描述符限制和单机最大长连接数
    ps命令支持的最大的进程号是多少
    nginx在配置反向代理后,启动时域名不通启动报错
  • 原文地址:https://www.cnblogs.com/yhcao/p/6237569.html
Copyright © 2011-2022 走看看