大家都知道,屏幕保护密码最多为16个字符。微软内置了16字节的密钥:48EE761D6769A11B7A8C47F85495975F。Windows便用上述密钥加密你输入的密码。其加密过程为:首先将你输入的密码字符逐位转换为其16进制的ASCⅡ码值(小写字母先转为大写字母),再依次与对应密钥逐位进行异或运算,把所得16进制值的每一位当作字符,转换为其16进制ASCII码,并在其尾加上00作为结束标志,存入注册表HKEY_CURRENT_USERControlPaneldesktop下的二进制键ScreenSave_Data中。
懂得其加密原理后,便不难编程破解我的屏幕保护密码(即上网密码)了。本人用VB6.0编制了一读取注册表中ScrrenSave_Data值的函数GetBinaryValue(EntryAsString),读出其值为31434133334335353334323100,去掉其结束标志00,把余下字节转换为对应的ASCII字符,并把每两个字符组成一16进制数:1CA33C553421,显然,密码为6位,将其与前6字节密钥逐一异或后便得出密码的ASCII码(16进制值):544D4A485348,对应的密码明文为TMJHSH,破解成功!用它拔号一试,呵,立刻传...[ 查看全文 ]