James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1876回复:12

Blue斑竹请进:CSP问题请教

楼主#
更多 发布于:2002-06-20 08:47
我下载了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]
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
zweiwan
驱动牛犊
驱动牛犊
  • 注册日期2001-07-12
  • 最后登录2005-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-20 09:29
用win2k下的expand.exe试试
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-20 09:49
用win2k下的expand.exe试试

Win98下也可以用这个吗?
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-20 09:57
这个文件不用动呀!你所说的这个步骤他们没用过。
你到win200下试一下,或是在win ME下,因为win98下有一些Bug。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-20 10:10
在2k下我试过了,把advapi32.dl_改名为advapi32.dll,然后拷贝到系统目录下,启动失败。

winme我这里没有,没有试过。

“这个文件不用动呀”是什么意思呢?是直接不用改名就拷贝到系统目录下,有些不太可能吧?

能否再帮我详细问一下?谢谢!
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-20 10:16
这个文件不用动呀!你所说的这个步骤他们没用过。
你到win200下试一下,或是在win ME下,因为win98下有一些Bug。


斑竹,能把你们的步骤给详细说一说吗?
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-20 12:44
你所说的这几步我们没有作过,我们是直接使用系统中的advapi32.dll这个动态库的。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-20 12:51
你所说的这几步我们没有作过,我们是直接使用系统中的advapi32.dll这个动态库的。


我也试过了,不过测试程序老是返回失败。
我再试试!
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
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]
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-06-23 08:48
Blue
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-06-24 08:25
Blue:
如果不替换advapi32的话,就没法测试自己编的CSP。因为advapi32里面包含了微软的公钥。

请问,你们是如何测试的呢?
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-06-24 12:49
我们是先拿到签名的,然后才调试的。所以不存在你的这个问题。
你试一下XP,据说在XP下没有签名也可以。只是据说,因为我感觉微软在XP对数字签名的要求范围更广了。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-06-25 09:50
BLUE:
我的在win98下问题解决了。但在Win2000下还是不行。

我的方法是:用zweiwan老兄说的expand.exe解开Win98目录下的 advapi32.dl_,然后替换win98原来的,重新启动,就一切OK了,测试程序也都运行成功。

但在win2000下不行,可能是我的win2000来路不明的原因,而win98则是正宗版本。不过,有能测试的就可以了。

非常感谢BLUE的热心帮助。我估计过一段时间我的CSP测试OK以后,得到微软的正式签名还需BLUE的帮忙,到时我们在商量其它的相关问题。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
游客

返回顶部