[已解决]有没有大佬研究怎么样读取U盾的证书信息?
本帖最后由 smooth 于 2022-4-7 15:53 编辑我的U盾,在IE的证书池里有如下信息:
序列号:1315125916
使用者密钥标识符:b0d60f8c29b85d23377dad994a4ab7dc83ca9f7f
指纹:a0df987841155123022fc1c4dcaf5b98beebfb07
有没有大佬研究过,用AU3怎么样读取到这些信息?
certmgr.exe /v /s 存储位置
这个么?????
root : 受信任的根证书颁发机构
trust 受信任的发布者
ca 中级证书颁发机构
my 个人证书
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) smooth 发表于 2022-3-24 22:05
谢谢大佬,我试了一下,报错了:
C:\WINDOWS\system32>d:\certmgr.exe /v /s my
额,,,我发给你个CertMgr文件你试试。。
yuantian 发表于 2022-3-24 22:08
额,,,我发给你个CertMgr文件你试试。。
网上能找到的最新版本是6.4,你这个10.0版的,可以读取出来。谢谢大佬! smooth 发表于 2022-3-24 22:14
网上能找到的最新版本是6.4,你这个10.0版的,可以读取出来。谢谢大佬!
我也不是大佬,,
这个文件是从Windows 的SDK当中提取出来的。
互相学习,相互进步嘛
本帖最后由 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
本帖最后由 smooth 于 2022-3-24 22:53 编辑
yuantian 发表于 2022-3-24 22:44
大约代码(正则比较简陋,献丑啦):
我用你的代码,但是读取到的信息,只有其中几项。
smooth 发表于 2022-3-24 22:49
我用你的代码,但是读取到的信息,只有其中几项。
你得先看你读取的证书,是不是你想要读的那个。
然后根据正则就提呗 yuantian 发表于 2022-3-24 22:57
你得先看你读取的证书,是不是你想要读的那个。
然后根据正则就提呗
是的,我看了你的正则,我才想起来,每个证书不一样,所以字段不一样,得修改正则、 smooth 发表于 2022-3-24 22:49
我用你的代码,但是读取到的信息,只有其中几项。
我U盾拔掉之后,还是可以读到证书的信息,感觉这样就不能判断U盾是否插入电脑了。 smooth 发表于 2022-3-24 23:23
我U盾拔掉之后,还是可以读到证书的信息,感觉这样就不能判断U盾是否插入电脑了。
那你单点调试看看certmgr就知道了呗 smooth 发表于 2022-3-24 23:23
我U盾拔掉之后,还是可以读到证书的信息,感觉这样就不能判断U盾是否插入电脑了。
主要是得看差异项不是 看看啊看看啊
页:
[1]