大家知道在windows xp系统下有文件签名验证工具Sigverif,可以验证某个目录的文件是否有数字签名
我对一个exe文件使用signcode.exe进行签名,在签名成功后,在文件的属性里能看到一个数字签名标签。而我从系统的system32\drivers目录里找了一个sys文件,它的属性里都没有数字签名标签。
我把这两个文件(假设文件名为a.exe,b.sys)都放到一个文件夹中,用Sigverif扫描,发现竟然结果是
a.exe是没签名的,而b.sys是有签名的(显示编录在nt5.cat)。
这是怎么回事?难道signcode做的签名不被Sigverif认可,那要如何才能做出被Sigverif认可的签名呢?
我对一个exe文件使用signcode.exe进行签名,在签名成功后,在文件的属性里能看到一个数字签名标签。而我从系统的system32\drivers目录里找了一个sys文件,它的属性里都没有数字签名标签。
我把这两个文件(假设文件名为a.exe,b.sys)都放到一个文件夹中,用Sigverif扫描,发现竟然结果是
a.exe是没签名的,而b.sys是有签名的(显示编录在nt5.cat)。
这是怎么回事?难道signcode做的签名不被Sigverif认可,那要如何才能做出被Sigverif认可的签名呢?
是经过验证的证书签名的文件才能被Sigverif识别出来
而未经过验证的证书只是测试证书,
不是正规的证书颁布机构颁布的,
所以它不会被识别出来.该证书需要到经过授权的机构购买
注册缴费,一个私钥pvr和一个证书crt
注册控件的时候预留64K来写相关信息
然后调用diamond打包或signcode来加密
“
打开经过签名的文件,在数字签名页里,
选中证书,然后点详细信息,
以过验证的会显示:该数字签名正常
而未受信任的证书签名的文件则会显示:由于当前的策略设置,该测试根不受信任;证书路径因此而终止
”
我觉得奇怪的是b.sys的属性里没有数字签名页,然后用Sigverif看到数字签名被编录到nt5.cat
这是怎么做的呢?
我先假设一个原因:数字签名证书可以内嵌,这样在属性里可以看到数字签名页,还可以外置放到.cat文件中。
有两种方式可以对内核模式代码签名:
1.把要签名的文件组成一个列表,然后编进一个.cat文件,然后对.cat文件签名。
2.直接对某个内核模式代码文件签名。
采用第二种方式签名可以在文件的属性页看到数字签名标签。
http://www.TrustAsia.com.cn这个网站有1000多的代码签名证书,服务也很不错,刚刚给我们公司买了一个Thawte的证书。