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”,其他默認,點“提交”即可。