SummerRain

软件开发/信息安全
随笔 - 246, 文章 - 0, 评论 - 240, 阅读 - 36万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

【转】通过注册表读取Windows最小密码长度限制等

Posted on   SummerRain  阅读(3231)  评论(0编辑  收藏  举报

注册表:

最小密码长度 

User   Key:   [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network] 
System   Key:   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network] 
Value   Name:   MinPwdLen 
Data   Type:   REG_BINARY   (Binary   Value) 
06   <-----   Default 
00   <-----   Change   to 
-------------------------------------------------------------------------------------最长密码期限 

System   Key:   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network] 
Value   Name:   MaxPasswordAge 
Data   Type:   REG_BINARY   (Binary   Value) 
------------------------------------------------------------------------------------- 
密码过期提前通知的天数 

System   Key:   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon] 
Value   Name:   PasswordExpiryWarning 
Data   Type:   DWORD 
14   <-----   Default 
------------------------------------------------------------------------------------- 
下面是程序调用的系统变量,您可以自己测试一下,中文部分是小妹自己猜的^-^ 

pwdProperties[密码必须符合复杂性要求] 
pwdHistoryLength   [强制密码历史] 
LockoutObservationInterval   [复位帐户锁定计数器] 
AutoUnlockInterval[帐户锁定时间] 
lockoutThreshold   [帐户锁定阀值] 

 

================================================================================================

 

隐藏注册表键值

 http://www.cnsw.org/bbs/thread-68551-1-1.html

经常有朋友会发现注册表里有一些键值可以看到却不能读取,更不能删除。这到底是怎么回事呢?其实原理非常简单,我来告诉大家。

开发的朋友都知道Win32 API,这是微软提供给开发人员的Windows系统编程接口。其实微软还有一套Native API,这个是系统底层的API。我们很多的Win32 API调用最后都通过Native API实现与系统内核间的通信。


在Win32 API和Native API里对字符串的定义是有区别的。在Win32 API里以”\0“作为字符串的结尾,而在Native API里“\0”确被看作一个字符。例如:"Key\0"在Win32 API里会被认为是"Key" ,3个字符长度。在Native API里就会被认为是"Key\0",4个字符长度。所以玄机就在这,我们可以利用Native API的NtCreateKey函数创建以”\0“为结尾的注册表键值。这样的话,Regedit和Regedt32以及使用Win32 API等的第三方注册表编辑软件就不能正常读写此键值。

这样我们就达到了隐藏注册表键值的目的。NtCreateKey函数的具体使用可以参考下面的事例程序。(完)

==============================================================================================


编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示