日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

破解Windows屏幕保護密碼

破解Windows屏幕保護密碼

更新時間:2022-05-03 文章作者:未知 信息來源:網絡 閱讀次數:

作者:田茂均

  大家都知道,屏幕保護密碼最多為16個字符。微軟內置了16字節的密鑰:48 EE 76 1D 67 69 A1 1B 7A 8C 47 F8 54 95 97 5F。Windows便用上述密鑰加密你輸入的密碼。其加密過程為:首先將你輸入的密碼字符逐位轉換為其16進制的ASCⅡ碼值(小寫字母先轉為大寫字母),再依次與對應密鑰逐位進行異或運算,把所得16進制值的每一位當作字符,轉換為其16進制ASCII碼,并在其尾加上00作為結束標志,存入注冊表HKEY_CURRENT_USER\Control Panel\desktop下的二進制鍵ScreenSave_Data中。
  懂得其加密原理后,便不難編程破解我的屏幕保護密碼(即上網密碼)了。本人用VB6.0編制了一讀取注冊表中ScrrenSave_Data值的函數GetBinaryValue(Entry As String),讀出其值為31 43 41 33 33 43 35 35 33 34 32 31 00,去掉其結束標志00,把余下字節轉換為對應的ASCII字符,并把每兩個字符組成一16進制數:1C A3 3C 55 34 21,顯然,密碼為6位,將其與前6字節密鑰逐一異或后便得出密碼的ASCII碼(16進制值):54 4D 4A 48 53 48,對應的密碼明文為TMJHSH,破解成功!用它拔號一試,呵,立刻傳來Modem歡快的叫聲。
  附VB源程序:(程序中使用了窗體Form1,文本框Text1,命令按鈕Command1)
  1、窗體代碼:
  Option Explicit
  Dim Cryptograph As String
  Dim i As Integer
  Dim j As Integer
  Dim k As Integer
  Dim CryptographStr(32) As Integer
  Dim PWstr As String
  Dim PassWord As String
  Private Sub Command1_Click()
  PWstr = “"
  PassWord = “"
  Text1.Text =“"
  Cryptograph = GetBinaryValue(“ScreenSave_Data")
  k = Len(Cryptograph)
  For j = 1 To k - 1
   For i = 32 To 126
   If Mid(Cryptograph, j, 1) = Chr(i) Then
   CryptographStr(j) = i
   End If
   Next i
  Next j
  i = (k - 1) / 2 '密碼位數為(h-1)/2,根據位數選擇解密過程。
  Select Case i
  Case 16
   GoTo 16
  Case 15
   GoTo 15
  Case 14
   GoTo 14
  Case 13
   GoTo 13
  Case 12
   GoTo 12
  Case 11
   GoTo 11
  Case 10
   GoTo 10
  Case 9
   GoTo 9
  Case 8
   GoTo 8
  Case 7
   GoTo 7
  Case 6
   GoTo 6
  Case 5
   GoTo 5
  Case 4
   GoTo 4
  Case 3
   GoTo 3
  Case 2
   GoTo 2
  Case 1
   GoTo 1
  Case Else
   End
  End Select
  16: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(31)) & Chr(CryptographStr(32))) Xor &H5F)
  15: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(29)) & Chr(CryptographStr(30))) Xor &H97)
  14: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(27)) & Chr(CryptographStr(28))) Xor &H95)
  13: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(25)) & Chr(CryptographStr(26))) Xor &H54)
  12: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(23)) & Chr(CryptographStr(24))) Xor &HF8)
  11: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(21)) & Chr(CryptographStr(22))) Xor &H47)
  10: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(19)) & Chr(CryptographStr(20))) Xor &H8C)
  9: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(17)) & Chr(CryptographStr(18))) Xor &H7A)
  8: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(15)) & Chr(CryptographStr(16))) Xor &H1B)
  7: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(13)) & Chr(CryptographStr(14))) Xor &HA1)
  6: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(11)) & Chr(CryptographStr(12))) Xor &H69)
  5: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(9)) & Chr(CryptographStr(10))) Xor &H67)
  4: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(7)) & Chr(CryptographStr(8))) Xor &H1D)
  3: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(5)) & Chr(CryptographStr(6))) Xor &H76)
  2: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(3)) & Chr(CryptographStr(4))) Xor &HEE)
  1: PWstr = PWstr & Chr((“&H" & Chr(CryptographStr(1)) & Chr(CryptographStr(2))) Xor &H48)
  For i = i To 1 Step -1 '所得PWstr的值為密碼的倒序列,將其倒置便得出密碼。
   PassWord = PassWord & Mid(PWstr, i, 1)
  Next i
  Text1.Text = PassWord '在文本框內顯示密碼。
  End Sub
  2、模塊代碼:
  Option Explicit
  Const ERROR_SUCCESS = 0&
  Const ERROR_BADDB = 1009&
  Const ERROR_BADKEY = 1010&
  Const REG_EXPAND_SZ = 2&
  Const REG_BINARY = 3&
  Const KEY_QUERY_VALUE = &H1&
  Const KEY_ENUMERATE_SUB_KEYS = &H8&
  Const KEY_NOTIFY = &H10&
  Const READ_CONTROL = &H20000
  Const STANDARD_RIGHTS_READ = READ_CONTROL
  Const KEY_READ = STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
  Const HKEY_CURRENT_USER = &H80000001
  Dim hKey As Long, MainKeyHandle As Long
  Dim rtn As Long, lBuffer As Long, sBuffer As String, SubKey As String
  Dim lBufferSize As Long
  Declare Function RegOpenKeyEx Lib “advapi32.dll" Alias “RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
  Declare Function RegCloseKey Lib “advapi32.dll" (ByVal hKey As Long) As Long
  Declare Function RegQueryValueEx Lib“advapi32.dll" Alias“Reg QueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
  Function GetBinaryValue(Entry As String)
  MainKeyHandle = HKEY_CURRENT_USER
  SubKey = “Control Panel\desktop\"
  rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, hKey)
   If rtn = ERROR_SUCCESS Then '如果HKEY_CURRENT_USER\Control Panel\desktop鍵被成功打開
   lBufferSize = 1
   rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, 0, lBufferSize) '讀取ScreenSave_Data的值
   sBuffer = Space(lBufferSize)
   rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, sBuffer, lBufferSize)
   If rtn = ERROR_SUCCESS Then '如果讀取ScreenSave_Data的值成功
   rtn = RegCloseKey(hKey)
   GetBinaryValue = sBuffer '函數返回ScreenSave_Data的值
   Else '如果讀取ScreenSave_Data的值不成功
   Call ErrorMsg
   End
   End If
  Else '如果HKEY_CURRENT_USER\Control Panel\desktop鍵不能打開
   Call ErrorMsg '調用ErrorMsg()過程
   End
   End If
  End Function
  Private Sub ErrorMsg() '顯示錯誤信息過程
   Select Case rtn
   Case ERROR_BADDB
   MsgBox (“您的計算機注冊表有錯誤!")
  Case ERROR_BADKEY, REG_EXPAND_SZ
   MsgBox (“您的計算機未設屏保密碼!")
  Case Else
   MsgBox (“破解過程中遇到未知錯誤,錯誤號:" & Str$(rtn))
   End Select
  End Sub

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 在线视频a| 午夜免费啪 | 日韩视频免费一区二区三区 | 最新四虎4hu影库地址在线 | 久久亚洲欧美日本精品 | 欧美最猛性xxxxx图片 | 日本亚洲欧美美色 | 夜噜噜噜噜噜 | 夜夜操网站 | 国产欧美另类第一页 | 国产精品极品美女自在线 | 国产亚洲欧美在线视频 | 在线观看视频欧美 | 青青草成人在线 | 国产精品视频第二区第二页 | 亚洲欧美成aⅴ人在线观看 亚洲欧美国产精品 | 波多野结衣一区二区三区在线观看 | 精品视频久久 | 国产高清影院 | 亚洲成年人视频 | 国产精品手机在线观看 | 久久机热这里只有精品33 | 成人免费视频播放 | 欧美男同视频免费videos | 久久精品国产这里是免费 | 国产在线调教两警花在线视频 | 欧洲欧美同性同志videosbest | 欧美日韩一区二区三在线 | 一区二区三区美女视频 | 狠狠色噜噜狠狠狠888奇米 | 午夜激情小视频 | 在线观看老湿机视频福利 | 国产亚洲欧美在线中文无广告 | 日韩欧美一区二区三区不卡在线 | 久久ww精品w免费人成 | 亚洲国产成人va在线观看网址 | 97超级碰碰免费观看在线 | 国产高清狼人香蕉在线观看 | 日本三级成人中文字幕乱码 | 92国产精品 | 亚洲欧美日韩国产色另类 |