目前在国内有十多家网站转载了我的部分文章(大多数非我授权),而读者不能阅读到我所有的文章。在此我强调一点,我只在www.yesky.com和www.vckbase.com开设专栏,只有专栏中的文章才是最全的,到撰稿为止我在专栏中发表的文章数量算本篇文章一共有27篇。这27篇文章都是无偿地提供给这两家网站。我的专栏的链接地址如下: yesky:http://www.yesky.com/SoftChannel/72340168526266368/20040908/1851586.shtml vckbase:http://www.vckbase.com/vckbase/columnist/fllsoft
下面开始讲解。Windows CE提供了一种机制,使定制操作系统内核的开发者能够保护自己定制的内核,加入了这中机制后,所有nk.bin解开的模块(EXE、DLL、OCX)都能够正常运行,存放在永久存储器上的模块在开发者数字签名后也能够运行,而没有数字签名的模块则不能运行。读者有兴趣可以查看CE帮助文档中标题为《Create a Trusted Environment》的文章。言简意赅,下面就开始讲解如何实现可信任环境。
1、得到钥容器
得到钥容器(key container)的方法是调用Win32 Security API。先得到CSP(cryptographic service provider),再得到key container。默认的CSP为Microsoft Base Cryptographic Provider。默认的key container以当前登录用户名为名称。如果你熟悉加密方面知识的话可以另外调用其他CSP。在此我们以Microsoft Base Cryptographic Provider默认的key container为signfile需要的钥容器。
2、对模块签名
signfile.exe用于对模块签名。这个文件在CE安装目录里(包括源码)可以找到,下面是参数说明:
-o 输出签名数据到指定的文件 -k 指定CAPI 钥容器 -p |