我有一个 Windows exe,它必须将一些安全数据写入 HKEY_LOCAL_MACHINE (HKLM)。我还有一个作为 NetworkService 帐户运行的服务,它必须读取该安全数据。请注意,exe 和服务以不同的用户身份运行。
这里的问题是保护数据。我尝试使用CryptProtectData,但问题是服务无法解密,因为数据未使用 NetworkService 帐户加密。我不想在调用 CryptProtectData 时使用 CRYPTPROTECT_LOCAL_MACHINE 标志,因为任何用户都可以解密它并且基本上使它不安全。
我猜这是一个常见的用例,但找不到任何解决方案。请问有什么想法吗?
仅供参考,我正在使用 Visual C++ 编写 exe 和服务。