每个人。我为 Windows Vista/7/8 开发了一个 NDIS 6.0 协议(protocol)驱动程序,并计划用证书对其进行签名。大多数公司提供支持.exe .ocx .dll 签名的代码签名证书,但是他们在驱动程序(.sys)支持方面非常不确定。一些公司提供另一种称为“内核模式驱动程序签名”的服务,它直接支持 .sys 签名,但它比“普通”代码签名更昂贵。
那么普通代码签名是否支持驱动程序签名?我应该选择哪一个来签署 Windows Vista/7/8 的驱动程序?越便宜越好。 普通代码签名与内核模式驱动程序签名?
这是我收集的一份 list ,也许有帮助:
VeriSign/Symantec 499$(用于 Microsoft Authenticode 的 Symantec 代码签名证书) http://www.symantec.com/code-signing?inid=vrsn_symc_cs_index&searchdomain=baidu.com&searchterms=verysign
GlobalSign 229$(内核模式驱动程序签名) https://www.globalsign.com/code-signing/microsoft-authenticode.html
DigiCert 178$(内核模式驱动程序签名) http://www.digicert.com/code-signing/kernel-mode-certificates.htm
2730365000&key6sk1=&key6sk2=CH270145394&key6sk3=7&key6sk4=zh-
us&key6sk5=CN&key6sk6=0&key6sk7=Google&key6sk8=117700&key6sk9=1366768&key6sk10=true&key6sk11=d9b4635431849dd2a58ca7162e81d9918b5d533c&key6s
k12=2034&key7sk1=2&key7sk2=169&key1sk1=ors&key1sk2=谷歌
TuCows 75$(不确定)(代码签名) https://author.tucows.com/index.php?action=auth&redirect=certs.php
K 软件 95 美元(代码签名,来自 Comodo,不适用于 .sys) http://codesigning.ksoftware.net/
K 软件 213$(内核模式驱动程序签名,来自 DigiCert) http://codesigning.ksoftware.net/index_dc.html
GoDaddy 200 美元(代码签名) http://www.godaddy.com/ssl/code-signing-certificate.aspx?isc=gsndcnm12&ci=13314
最佳答案
如果没有正确签名,您将无法在 x64 窗口加载驱动程序。并非所有公司都拥有微软的交叉证书用于内核签名 - 你可以查看 http://msdn.microsoft.com/en-us/library/windows/hardware/gg487315.aspx#E5C完整列表。从您的列表中 - Verisign、GlobalSign 和 DigiCert。
关于windows - 哪种代码签名可以对驱动程序 (.sys) 进行签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17416472/
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
在控制台中反复尝试之后,我想到了这种方法,可以按发生日期对类似activerecord的(Mongoid)对象进行分组。我不确定这是完成此任务的最佳方法,但它确实有效。有没有人有更好的建议,或者这是一个很好的方法?#eventsisanarrayofactiverecord-likeobjectsthatincludeatimeattributeevents.map{|event|#converteventsarrayintoanarrayofhasheswiththedayofthemonthandtheevent{:number=>event.time.day,:event=>ev
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html