找回密码
 加入
搜索
查看: 957|回复: 14

[系统综合] [已解决]有没有大佬研究怎么样读取U盾的证书信息?

[复制链接]
发表于 2022-3-24 16:47:02 | 显示全部楼层 |阅读模式
本帖最后由 smooth 于 2022-4-7 15:53 编辑

我的U盾,在IE的证书池里有如下信息:

序列号:1315125916
使用者密钥标识符:b0d60f8c29b85d23377dad994a4ab7dc83ca9f7f
指纹:a0df987841155123022fc1c4dcaf5b98beebfb07

有没有大佬研究过,用AU3怎么样读取到这些信息?

发表于 2022-3-24 21:32:43 | 显示全部楼层
certmgr.exe /v /s 存储位置 

这个么?????
root : 受信任的根证书颁发机构
trust 受信任的发布者
ca   中级证书颁发机构
my 个人证书

 楼主| 发表于 2022-3-24 22:05:07 | 显示全部楼层
yuantian 发表于 2022-3-24 21:32
这个么?????
root : 受信任的根证书颁发机构
trust 受信任的发布者

谢谢大佬,我试了一下,报错了:

C:\WINDOWS\system32>d:\certmgr.exe /v /s my

未经处理的异常:  System.IO.FileNotFoundException: 未能加载文件或程序集“Mono.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756”或它的某一个依赖项。系统找不到指定的文件。
   在 Mono.Tools.CertificateManager.Main(String[] args)
发表于 2022-3-24 22:08:41 | 显示全部楼层
smooth 发表于 2022-3-24 22:05
谢谢大佬,我试了一下,报错了:

C:\WINDOWS\system32>d:\certmgr.exe /v /s my

额,,,我发给你个CertMgr文件你试试。。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2022-3-24 22:14:33 | 显示全部楼层
yuantian 发表于 2022-3-24 22:08
额,,,我发给你个CertMgr文件你试试。。

网上能找到的最新版本是6.4,你这个10.0版的,可以读取出来。谢谢大佬!
发表于 2022-3-24 22:18:40 | 显示全部楼层
smooth 发表于 2022-3-24 22:14
网上能找到的最新版本是6.4,你这个10.0版的,可以读取出来。谢谢大佬!

我也不是大佬,,
这个文件是从Windows 的SDK当中提取出来的。

互相学习,相互进步嘛
发表于 2022-3-24 22:44:57 | 显示全部楼层
本帖最后由 yuantian 于 2022-3-24 22:46 编辑

大约代码(正则比较简陋,献丑啦):

#include <Array.au3>

$aResult = __Run_Bat_Get_Echo("G:\certmgr.exe /v /s my")
$aArray = StringRegExp($aResult,"(?s)\=(Certificate.*?)\s=.*?(SerialNumber).*?\n\s*(.*?)\n.*?(SHA1 Thumbprint).*?\n\s*(.*?)\n.*?(MD5 Thumbprint).*?\n\s*(.*?)\n", 3, 1)
_ArrayDisplay($aArray)

Func __Run_Bat_Get_Echo($Command);运行批处理命令,并返回执行结果
        ;功能    :完整返回批处理命令的执行回显。不会出现乱码或者缺失。支持将多条命令连在一起执行
        ;注意    :支持带参数执行批处理。支持带变量执行批处理。但变量中请注意“'”标点符号的使用,不使用或需要成对使用。
        ;作者    :迷路轮回
        ;编写时间:2018-02-27
        ;最后更新:2019-02-03
        Local $iPID = Run(@ComSpec & ' /c ' & $Command, @ScriptDir, @SW_HIDE, 8)
        If Not @error Then
                ProcessWaitClose($iPID)
                Local $Result = BinaryToString(StdoutRead($iPID, 1, 1))
                Return $Result
        EndIf
EndFunc   ;==>__Run_Bat_Get_Echo


__Run_Bat_Get_Echo()的部分,请见地址:
https://autoitx.com/thread-71099-1-1.html



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2022-3-24 22:49:05 | 显示全部楼层
本帖最后由 smooth 于 2022-3-24 22:53 编辑
yuantian 发表于 2022-3-24 22:44
大约代码(正则比较简陋,献丑啦):
我用你的代码,但是读取到的信息,只有其中几项。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2022-3-24 22:57:04 | 显示全部楼层
smooth 发表于 2022-3-24 22:49
我用你的代码,但是读取到的信息,只有其中几项。

你得先看你读取的证书,是不是你想要读的那个。
然后根据正则就提呗
 楼主| 发表于 2022-3-24 22:58:38 | 显示全部楼层
yuantian 发表于 2022-3-24 22:57
你得先看你读取的证书,是不是你想要读的那个。
然后根据正则就提呗

是的,我看了你的正则,我才想起来,每个证书不一样,所以字段不一样,得修改正则、

点评

总会有你能提出来的东西的。。  发表于 2022-3-24 23:08
 楼主| 发表于 2022-3-24 23:23:55 | 显示全部楼层
smooth 发表于 2022-3-24 22:49
我用你的代码,但是读取到的信息,只有其中几项。

我U盾拔掉之后,还是可以读到证书的信息,感觉这样就不能判断U盾是否插入电脑了。
发表于 2022-3-24 23:32:57 | 显示全部楼层
smooth 发表于 2022-3-24 23:23
我U盾拔掉之后,还是可以读到证书的信息,感觉这样就不能判断U盾是否插入电脑了。

那你单点调试看看certmgr就知道了呗
发表于 2022-3-24 23:34:08 | 显示全部楼层
smooth 发表于 2022-3-24 23:23
我U盾拔掉之后,还是可以读到证书的信息,感觉这样就不能判断U盾是否插入电脑了。

主要是得看差异项不是
发表于 2022-3-29 20:39:40 | 显示全部楼层
看看啊看看啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-4 10:26 , Processed in 0.080241 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表