2013-02-01 31 views
1

當遇到Vault和vaultcli dll時,我在System32中遇到了dll。我假設這些圖書館使用密碼存儲,我想知道是否有人有關於這些的更多信息。我試圖搜索谷歌,但只能找到一堆「這是病毒」和「修復這個錯誤」的網站。我假設這些是C/C++庫,因爲我嘗試在C#項目中添加對它們的引用,但沒有成功。我想知道這些dll包含哪些方法,以及是否可以使用DllImportextern從C#中引用它們。有關Vault.dll和Vaultcli.dll的信息

+1

'dumpbin/exports vaultcli.dll'會顯示它輸出的功能。看起來像vault.dll就像一個COM對象(只導出'DllGetClassObject'和'DllCanUnloadNow')。 –

+0

@JerryCoffin謝謝你,我完全不知道這個功能。我將不得不嘗試這個,並對'DllGetClassObject'和'DllCanUnloadNow'做更多的研究。無可否認,我的C/C++知識並不是最大的,所以我理解與user32.dll和類似庫之外的非託管代碼的交互也是有限的。 –

+1

'dumpbin'是Windows SDK的一部分,所以如果你沒有,你可能需要首先下載/安裝它。 –

回答

1

Vaultcmd.exe(與它的依賴性vaultcli.dll)等價於控制面板中的Credential Manager命令行(在Windows 7中,下控制面板 - >用戶帳戶和家庭安全 - >憑證管理器。)

從Windows 8(和通用Windows平臺)開始,Windows開始包括Windows.Security.Credentials.PasswordVault。這是一個易於在C#中使用的.Net庫。它可以添加,讀取和列出憑證。

它似乎是Windows的一部分,而不是.Net框架。爲了使它工作,我必須在我的.csproj中設置PlatformLevel。

<PropertyGroup> 
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> 
    <TargetPlatformVersion>8.0</TargetPlatformVersion> 
</PropertyGroup> 

<Reference Include="Windows.Security"> 
     <HintPath>$(SYSTEMROOT)\System32\WinMetadata\Windows.Security.winmd</HintPath> 
</Reference>