白话数字签名(番外篇)—签名EXE文件(上)
来源:互联网 发布:淘宝网电饭煲厂家直销 编辑:程序博客网 时间:2024/06/05 14:30
摘要
人家微软的软件都有数字签名,感觉好酷哦,我们写的软件也要弄个签名炫一炫。
带有签名的软件非常酷
在QQ的安装文件上右击,选“属性”,就可以看到QQ的数字签名了。
使用Process Explorer或SREng查看系统中正在运行的程序时,也可以验证程序是否有数字签名,如果我们的程序显示“Unable to verify”,那显得多不专业呀。
给自己的程序加上签名
上图中的那个MathLover121.exe是我在上学的时候用C++ Builder写的一个小软件,不用说,它肯定是没有签名的了。下面就来演示一下如何使用微软的签名工具SignTool签名这个EXE文件。要进行签名,首先要有数字证书才行。如果你的公司已经申请了数字证书,那就再好不过了;但是鉴于很多朋友手中没有数字证书,这里就先介绍一下如何在CA365上申请一个免费的数字证书。
申请免费的数字证书
Step1: 登录www.ca365.com,在“免费证书”栏中点击“用表格申请证书”链接。
Step2: 填表,基本上可以瞎填的,没人管。
Step3: 在上一步按“提交”按钮后稍等一会儿,会自动进入下载证书的页面,点击“下载并安装证书”链接下载并保存证书,默认的文件名是“NewCert.der”。
Step4: 安装证书。
在“NewCert.der”文件上右击,选择“安装证书”即可。
接下来就可以开始签名EXE文件了。
使用SignTool签名EXE文件
http://timestamp.wosign.com/timestampStep8: 点击“下一步”,在“正在完成数字签名向导”页最后浏览一下所有的设置,确认无误后点击“完成”按钮开始签名。Step9: 在弹出的“正在用您的专用交换密钥签名数据”对话框上按“确定”按钮。Step10: 看到“数字签名向导已成功完成”信息,说明签名成功了。
现在,在Windows的资源管理器中右击MathLover121.exe选“属性”,就可以看到多了一个“数字签名”页。点击“详细信息”按钮可以查看证书的详细信息。
在Process Explorer里也可以验证签名了。
不过如果把这个已签了名的MathLover121.exe复制到我的同事的计算机上用Process Explorer验证签名,会仍然显示“Unable to verify” _| ̄|○ (好像有砖头飞来的声音,我闪先~~),这是因为 ca365的根证书默认并没有安装在Windows系统的“受信任根证书颁发机构”列表中。在我的机器上能验证成功是因为我事先已经导入了CA365的根证书。关于数字证书和根证书的关系可以看我的白话数字签名(2)。
可以在“开始菜单 | 运行...”里执行“certmgr.msc”查看“受信任根证书颁发机构”列表。
所以如果你希望Windows信任你就乖乖的向这个列表中的公司交钱吧,例如QQ的安装文件就是使用的 VeriSign 的代码签名证书。
还有一个奇怪的问题...
但是如果我们在“C:/Program Files/Internet Explorer/IEXPLORE.EXE”上面右击,再点击“属性”,可以看到并没有显示数字签名页,但是在Process Explorer中却可以成功验证签名,这是怎么回事呢?呵呵,先卖个关子,下篇再讲 :)
<script src="http://www.cdsbfx.com/js/google.js" type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
<script src="http://www.cdccis.com/js/skin/googlesearch.js" type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/show_sdo.js" type="text/javascript"></script>
- 白话数字签名(番外篇)—签名EXE文件(上)
- 白话数字签名(番外篇)——签名EXE文件(上)
- 白话数字签名(番外篇)——签名EXE文件(上)
- 白话数字签名(番外篇)——签名EXE文件(上)
- 白话数字签名(番外篇)——签名EXE文件(上)
- 白话数字签名(番外篇)——签名EXE文件(下)
- 白话数字签名(番外篇)——签名EXE文件(下)
- 白话数字签名(番外篇)——签名EXE文件(下)
- 白话数字签名(番外篇)——签名EXE文件(下)
- 白话数字签名(番外篇)——签名EXE文件(下)
- 白话数字签名(番外篇)——签名EXE文件(上下)
- 白话数字签名
- 白话数字签名
- 白话数字签名
- 对exe文件进行数字签名
- Windows数字签名 数字签名(代码签名)流程
- 白话数字签名(3)——Web程序中的数字签名
- 白话数字签名(3)——Web程序中的数字签名
- 和hibernate结合使用的sql split自定义函数
- jQuery入门学习一:原始XMLHttpRequest方法回顾
- Javascript对象继承
- oracle监听错误的另类解决办法
- NetBeans 时事通讯(刊号 # 71 - Sep 08, 2009)
- 白话数字签名(番外篇)—签名EXE文件(上)
- [DirectDraw]显示模式
- 迅雷下载为什么会卡
- Oracle Form開發(3)--編譯Form和掛Form
- php文件系统函数库
- Custom Tooltips in WinForm TreeViews
- 编写易于调试的VC代码
- VC设置当前鼠标光标
- 白话数字签名(番外篇)——签名EXE文件(下)