阅读:1876回复:12
Blue斑竹请进:CSP问题请教
我下载了CSPDK,但我想利用他提供的工具进行测试时遇到了麻烦。再其readme.txt中说:
1. Go to the %systemroot%\\system32 folder (windows\\system for Windows 98). 2. Rename the current advapi.dll to advapi32.bak 3. Expand the appropriate ADVAPI32.DLL for your test platform to the %systemroot%\\system32 folder (windows\\system for Windows 98). 4. Copy the cspsign.exe to the %systemroot%\\system32 folder (windows\\system for Windows 98). 5. Reboot. 我的操作系统是Win98,我在Dos下把advapi32.dll改为advapi32.bak;我不知道如何扩展 advapi32.dl_成advapi32.dll,后来我听说直接改名就可以,于是直接改名并拷贝到系统目录下,然后拷贝cspsign.exe到系统目录,重启,但是机器启动失败。Win2K下也是这样,重启失败。我只好又把advapi32.dll换成原来的备份机器才能启动成功。 我的问题: 1、如何扩展advapi32.dl_为advapi32.dll?是否直接改名就可以了? Znsoft教给我一个方法,用windows目录下的extract.exe,但是不成功, 说advapi32.dl_格式不对 Error:advapi32.dl_ is not a cabinet file。我用的命令就是 extract advapi32.dl_。 2、重启失败的原因是什么? Blue斑竹一定要帮忙啊!如果这一步都走不下去,其它什么都做不了。 谢谢! [编辑 - 6/20/02 by Jim_little] |
|
|
沙发#
发布于:2002-06-20 09:29
用win2k下的expand.exe试试
|
|
板凳#
发布于:2002-06-20 09:49
用win2k下的expand.exe试试 Win98下也可以用这个吗? |
|
|
地板#
发布于:2002-06-20 09:57
这个文件不用动呀!你所说的这个步骤他们没用过。
你到win200下试一下,或是在win ME下,因为win98下有一些Bug。 |
|
地下室#
发布于:2002-06-20 10:10
在2k下我试过了,把advapi32.dl_改名为advapi32.dll,然后拷贝到系统目录下,启动失败。
winme我这里没有,没有试过。 “这个文件不用动呀”是什么意思呢?是直接不用改名就拷贝到系统目录下,有些不太可能吧? 能否再帮我详细问一下?谢谢! |
|
|
5楼#
发布于:2002-06-20 10:16
这个文件不用动呀!你所说的这个步骤他们没用过。 斑竹,能把你们的步骤给详细说一说吗? |
|
|
6楼#
发布于:2002-06-20 12:44
你所说的这几步我们没有作过,我们是直接使用系统中的advapi32.dll这个动态库的。
|
|
7楼#
发布于:2002-06-20 12:51
你所说的这几步我们没有作过,我们是直接使用系统中的advapi32.dll这个动态库的。 我也试过了,不过测试程序老是返回失败。 我再试试! |
|
|
8楼#
发布于:2002-06-20 17:10
Blue:
我按照你说的方法,在win2000下使用原来的advapi32.dll。 运行cspinstl来安装例子的csp,安装后查看注册表如下: provider: ImagePath:c:\\windows\\system32\\csp.dll signature: 56........ type:0x00000384(900) provider type: type 900: Name: \"CSP provider\" 看起来一切正常,但我运行testcsp, 发现头一句就返回错误: if (RCRYPT_FAILED(CryptAcquireContext(&hProv, NULL, \"CSP Provider\", 900, 0))) { printf(\"CryptAcquireConext returned error %x\\n\", GetLastError()); printf(\"FAILED\\n\"); return(TRUE); } 错误代码为80090006(签名错误)。 我改变函数调用默认的CSP则能够成功。 Blue,能够帮我分析一下是什么原因吗? 谢谢! [编辑 - 6/23/02 by Jim_little] |
|
|
9楼#
发布于:2002-06-23 08:48
Blue
|
|
|
10楼#
发布于:2002-06-24 08:25
Blue:
如果不替换advapi32的话,就没法测试自己编的CSP。因为advapi32里面包含了微软的公钥。 请问,你们是如何测试的呢? |
|
|
11楼#
发布于:2002-06-24 12:49
我们是先拿到签名的,然后才调试的。所以不存在你的这个问题。
你试一下XP,据说在XP下没有签名也可以。只是据说,因为我感觉微软在XP对数字签名的要求范围更广了。 |
|
12楼#
发布于:2002-06-25 09:50
BLUE:
我的在win98下问题解决了。但在Win2000下还是不行。 我的方法是:用zweiwan老兄说的expand.exe解开Win98目录下的 advapi32.dl_,然后替换win98原来的,重新启动,就一切OK了,测试程序也都运行成功。 但在win2000下不行,可能是我的win2000来路不明的原因,而win98则是正宗版本。不过,有能测试的就可以了。 非常感谢BLUE的热心帮助。我估计过一段时间我的CSP测试OK以后,得到微软的正式签名还需BLUE的帮忙,到时我们在商量其它的相关问题。 |
|
|