gpt4 book ai didi

security - Internet Explorer 将保存的密码存储在哪里?

转载 作者:行者123 更新时间:2023-12-03 13:32:03 24 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




Internet Explorer 将保存的密码存储在哪里?

而且由于这是一个编程站点,所以我并没有真正询问 IE 存储密码的位置,但是 IE 使用哪个 API 来保存密码 .

起初我假设微软使用的是标准 api:

  • CredRead
  • CredWrite

  • 用于保存域和通用程序/网站凭据。
    CredRead/ CredWrite然后转身使用:
  • CryptProtectData
  • CryptUnprotectData

  • 使用当前用户的帐户加密数据。 CredRead/ CredWrite然后将数据存储在某个神奇的位置,您可以从控制面板中看到其中的内容:

    enter image description here

    但我在那里看不到 IE 密码。所以 IE 不使用 CredRead 存储密码/ CredWrite .

    IE 使用什么 API 来存储密码,如果使用 CryptProtectData ,然后它将 protected 数据存储在哪里?

    编辑:我问的原因不需要解释(因为它很明显),但这是因为我可能想使用相同的机制。

    最佳答案

    简短回答:在保险库中。从 Windows 7 开始,创建了一个 Vault 用于在其中存储任何敏感数据和 Internet Explorer 的凭据。
    Vault 实际上是一个 LocalSystem 服务 - vaultsvc.dll。

    长答案:
    Internet Explorer 允许两种凭据存储方法:网站凭据(例如:您的 Facebook 用户和密码)和自动完成数据。从版本 10 开始,引入了一个新术语,而不是使用注册表:Windows Vault。 Windows Vault 是凭据管理器信息的默认存储库。

    您需要检查正在运行的操作系统。如果是 Windows 8 或更高版本,请调用 VaultGetItemW8 .如果不是,请调用 VaultGetItemW7 .

    要使用“Vault”,您需要加载一个名为“vaultcli.dll”的 DLL 并根据需要访问其功能。

    典型的 C++ 代码将是:

    hVaultLib = LoadLibrary(L"vaultcli.dll");

    if (hVaultLib != NULL)
    {
    pVaultEnumerateItems = (VaultEnumerateItems)GetProcAddress(hVaultLib, "VaultEnumerateItems");
    pVaultEnumerateVaults = (VaultEnumerateVaults)GetProcAddress(hVaultLib, "VaultEnumerateVaults");
    pVaultFree = (VaultFree)GetProcAddress(hVaultLib, "VaultFree");
    pVaultGetItemW7 = (VaultGetItemW7)GetProcAddress(hVaultLib, "VaultGetItem");
    pVaultGetItemW8 = (VaultGetItemW8)GetProcAddress(hVaultLib, "VaultGetItem");
    pVaultOpenVault = (VaultOpenVault)GetProcAddress(hVaultLib, "VaultOpenVault");
    pVaultCloseVault = (VaultCloseVault)GetProcAddress(hVaultLib, "VaultCloseVault");

    bStatus = (pVaultEnumerateVaults != NULL)
    && (pVaultFree != NULL)
    && (pVaultGetItemW7 != NULL)
    && (pVaultGetItemW8 != NULL)
    && (pVaultOpenVault != NULL)
    && (pVaultCloseVault != NULL)
    && (pVaultEnumerateItems != NULL);
    }

    然后通过调用枚举所有存储的凭据
    VaultEnumerateVaults

    然后你检查结果。

    关于security - Internet Explorer 将保存的密码存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3023561/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com