如何通过JNA检查全局可逆加密?

时间:2017-06-09 01:23:42

标签: java windows jna

我试图以编程方式通过JNA(Java Native Access)检索Windows中Reversible Encryption设置的全局值。

我可以通过JNA读取全局用户密码策略中的其他值,例如

  1. 强制执行密码记录
  2. 密码最长期限
  3. 密码最短期限
  4. 最短密码长度
  5. 但是没有关于如何具体了解Java中可逆加密的价值的信息?我试图google但无济于事。有人知道吗?

1 个答案:

答案 0 :(得分:0)

使用密钥ClearTextPasswordRSOP_SecuritySettingBoolean课程的WMI中提供了可逆加密设置。

可以通过命令行(例如wmic /NAMESPACE:\\root\RSOP\Computer path RSOP_SecuritySettingBoolean)或PowerShell查询WMI。我已经实现了一个WMI Util class using JNA来实现C代码来查询WMI,如果你更喜欢程序化方法,你可以复制它(你需要更多的类。)

您也可以在命令行执行此操作:Secedit.exe /export /cfg c:\cfg.txt并读取输出文件,查找ClearTextPassword的值。

看起来您可能fetch the value with a binary dump of the contents注册表项\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\F,在这种情况下,该值将存储在偏移0x004C的字节的4个最高有效位中。您可以使用JNA's Advapi32Util class(在这种情况下,可能是registryGetBinaryValue())阅读注册表。

我还找到了一个可能有用的注册表位置(完全未经测试): \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SeCEdit\Reg Values。这指向Machine/System/CurrentControlSet/Services/Netlogon/Parameters中的类似设置,可能有用也可能没有帮助