www.pudn.com > ppbsrc.zip > pb.frm


VERSION 5.00 
Begin VB.Form Form1  
   BackColor       =   &H008080FF& 
   BorderStyle     =   1  'Fixed Single 
   Caption         =   "破解屏幕保护密码" 
   ClientHeight    =   1860 
   ClientLeft      =   3750 
   ClientTop       =   3255 
   ClientWidth     =   4590 
   LinkTopic       =   "Form1" 
   MaxButton       =   0   'False 
   MinButton       =   0   'False 
   ScaleHeight     =   1860 
   ScaleWidth      =   4590 
   Begin VB.CommandButton Command2  
      BackColor       =   &H00FFC0C0& 
      Caption         =   "破译密码" 
      Height          =   375 
      Left            =   2640 
      Style           =   1  'Graphical 
      TabIndex        =   2 
      Top             =   1320 
      Width           =   1215 
   End 
   Begin VB.CommandButton Command1  
      BackColor       =   &H00FFC0C0& 
      Caption         =   "获得密码" 
      Height          =   375 
      Left            =   720 
      Style           =   1  'Graphical 
      TabIndex        =   1 
      Top             =   1320 
      Width           =   1215 
   End 
   Begin VB.TextBox Text1  
      Height          =   270 
      Left            =   120 
      TabIndex        =   0 
      Top             =   600 
      Width           =   4335 
   End 
   Begin VB.Frame Frame1  
      BackColor       =   &H008080FF& 
      Height          =   615 
      Left            =   360 
      TabIndex        =   4 
      Top             =   1150 
      Width           =   3855 
   End 
   Begin VB.Label Label1  
      AutoSize        =   -1  'True 
      BackStyle       =   0  'Transparent 
      Caption         =   "小猫制作" 
      BeginProperty Font  
         Name            =   "华文彩云" 
         Size            =   18 
         Charset         =   134 
         Weight          =   400 
         Underline       =   0   'False 
         Italic          =   0   'False 
         Strikethrough   =   0   'False 
      EndProperty 
      ForeColor       =   &H00FF8080& 
      Height          =   360 
      Left            =   1440 
      TabIndex        =   3 
      Top             =   120 
      Width           =   1440 
   End 
End 
Attribute VB_Name = "Form1" 
Attribute VB_GlobalNameSpace = False 
Attribute VB_Creatable = False 
Attribute VB_PredeclaredId = True 
Attribute VB_Exposed = False 
'破屏幕保护密码也许用处不大,但是,不少人他的QQ密码, 
'电子信箱密码,甚至开机密码,用的是和屏保一样的密码。这样一来, 
'你岂不是间接知道了他的其它密码吗 
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkresult As Long) As Long 
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long 
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long 
Private Const HKEY_CLASSES_ROOT = &H80000000 
Private Const HKEY_CURRENT_USER = &H80000001 
Private Const HKEY_LOCAL_MACHINE = &H80000002 
Private Const HKEY_USERS = &H80000003 
Private Const HKEY_PERFORMANCE_DATA = &H80000004 
Private Const HKEY_CURRENT_CONFIG = &H80000005 
Private Const HKEY_DYN_DATA = &H80000006 
Private Const REG_NONE = 0 
Private Const REG_SZ = 1 
Private Const REG_EXPAND_SZ = 2 
Private Const REG_BINARY = 3 
Private Const REG_DWORD = 4 
Private Const REG_DWORD_BIG_ENDIAN = 5 
Private Const REG_MULTI_SZ = 7 
Dim source(16) As String 
 
 
Private Sub Command1_Click() 
Dim xm As String 
Dim pp As String 
Dim xx As Integer 
Dim zhb As Long 
Dim ff As String 
Dim value As String * 255 
Dim size As Long 
Dim mm As String 
size = 255 
mm = "control panel\desktop" 
RegOpenKey HKEY_CURRENT_USER, mm, zhb 
RegQueryValueEx zhb, "ScreenSave_Data", 0, REG_SZ, ByVal value, size 
RegCloseKey zhb 
xm = value 
For xx = 1 To Len(xm) 
pp = Mid(xm, xx, 1) 
If pp = "0" Then 
pp = 30 
End If 
If pp = "1" Then 
pp = 31 
End If 
If pp = "2" Then 
pp = 32 
End If 
If pp = "3" Then 
pp = 33 
End If 
If pp = "4" Then 
pp = 34 
End If 
If pp = "5" Then 
pp = 35 
End If 
If pp = "6" Then 
pp = 36 
End If 
If pp = "7" Then 
pp = 37 
End If 
If pp = "8" Then 
pp = 38 
End If 
If pp = "9" Then 
pp = 39 
End If 
If pp = "A" Then 
pp = 41 
End If 
If pp = "B" Then 
pp = 42 
End If 
If pp = "C" Then 
pp = 43 
End If 
If pp = "D" Then 
pp = 44 
End If 
If pp = "E" Then 
pp = 45 
End If 
If pp = "F" Then 
pp = 46 
End If 
ff = ff + pp 
Next xx 
Text1.Text = ff 
If Text1.Text = "" Then 
Text1.Text = "无屏幕保护密码!" 
Else 
Command1.Enabled = False 
Command2.Enabled = True 
End If 
End Sub 
 
Private Sub Command2_Click() 
Dim temp1 As String, temp2 As String, temp3 As String, temp4 As String, temp5 As String, temp6 As String, temp7 As String, temp8 As String, temp9 As String 
Dim fin1 As String 
Dim fin2 As String 
Dim fin3 As String 
Dim err1 As String 
Dim err2 As String 
Dim err3 As String 
Dim err4 As String 
Dim i As Integer 
Dim j As Integer 
Dim m As Integer 
Dim n As Integer 
Dim x As Integer 
Dim y As Integer 
Dim a As Integer 
'将密码转化十进制数,再求ACSII码 
For i = 1 To Len(Text1.Text) Step 2 
temp1 = Mid(Text1.Text, i, 2) 
err2 = Val(Mid(temp1, 1, 1)) * 16 + Val(Mid(temp1, 2, 1)) 
err3 = Chr(err2) 
temp2 = temp2 + err3 
Next i 
'将密码转化为二进制 
For j = 1 To Len(temp2) 
temp3 = Mid(temp2, j, 1) 
If temp3 = "0" Then 
temp3 = "0000" 
End If 
If temp3 = "1" Then 
temp3 = "0001" 
End If 
If temp3 = "2" Then 
temp3 = "0010" 
End If 
If temp3 = "3" Then 
temp3 = "0011" 
End If 
If temp3 = "4" Then 
temp3 = "0100" 
End If 
If temp3 = "5" Then 
temp3 = "0101" 
End If 
If temp3 = "6" Then 
temp3 = "0110" 
End If 
If temp3 = "7" Then 
temp3 = "0111" 
End If 
If temp3 = "8" Then 
temp3 = "1000" 
End If 
If temp3 = "9" Then 
temp3 = "1001" 
End If 
If temp3 = "A" Then 
temp3 = "1010" 
End If 
If temp3 = "B" Then 
temp3 = "1011" 
End If 
If temp3 = "C" Then 
temp3 = "1100" 
End If 
If temp3 = "D" Then 
temp3 = "1101" 
End If 
If temp3 = "E" Then 
temp3 = "1110" 
End If 
If temp3 = "F" Then 
temp3 = "1111" 
End If 
temp4 = temp4 + temp3 
Next j 
'将密码与密钥逐位异或运算 
For m = 1 To Len(temp4) Step 8 
err1 = Mid(temp4, m, 8) 
temp5 = source((m - 1) / 8) 
For n = 1 To 8 
temp7 = Val(Mid(err1, n, 1)) Xor Val(Mid(temp5, n, 1)) 
temp8 = temp8 + temp7 
Next n 
Next m 
'将二进制转化为十六进制数 
For x = 1 To Len(temp8) Step 4 
temp9 = Mid(temp8, x, 4) 
If temp9 = "0000" Then 
temp9 = "0" 
End If 
If temp9 = "0001" Then 
temp9 = "1" 
End If 
If temp9 = "0010" Then 
temp9 = "2" 
End If 
If temp9 = "0011" Then 
temp9 = "3" 
End If 
If temp9 = "0100" Then 
temp9 = "4" 
End If 
If temp9 = "0101" Then 
temp9 = "5" 
End If 
If temp9 = "0110" Then 
temp9 = "6" 
End If 
If temp9 = "0111" Then 
temp9 = "7" 
End If 
If temp9 = "1000" Then 
temp9 = "8" 
End If 
If temp9 = "1001" Then 
temp9 = "9" 
End If 
If temp9 = "1010" Then 
temp9 = "A" 
End If 
If temp9 = "1011" Then 
temp9 = "B" 
End If 
If temp9 = "1100" Then 
temp9 = "C" 
End If 
If temp9 = "1101" Then 
temp9 = "D" 
End If 
If temp9 = "1110" Then 
temp9 = "E" 
End If 
If temp9 = "1111" Then 
temp9 = "F" 
End If 
fin1 = fin1 + temp9 
Next x 
'将密码转化为十进制,再求ASCII码 
For y = 1 To Len(fin1) Step 2 
fin2 = Mid(fin1, y, 2) 
err4 = Mid(fin2, 2, 1) 
If err4 = "A" Then 
err4 = 10 
End If 
If err4 = "B" Then 
err4 = 11 
End If 
If err4 = "C" Then 
err4 = 12 
End If 
If err4 = "D" Then 
err4 = 13 
End If 
If err4 = "E" Then 
err4 = 14 
End If 
If err4 = "F" Then 
err4 = 15 
End If 
fin2 = Val(Mid(fin2, 1, 1)) * 16 + Val(err4) 
fin2 = Chr(fin2) 
fin3 = fin3 + fin2 
Next y 
Text1.Text = "" 
Text1.Text = fin3 
Command1.Enabled = True 
Command2.Enabled = False 
End Sub 
 
Private Sub Form_Load() 
'WINDOWS内置的16位密钥,不要问我为什么,去问比尔.盖茨 
source(0) = "01001000" 
source(1) = "11101110" 
source(2) = "01110110" 
source(3) = "00011101" 
source(4) = "01100111" 
source(5) = "01101001" 
source(6) = "10100001" 
source(7) = "00011011" 
source(8) = "01111010" 
source(9) = "10001100" 
source(10) = "01000111" 
source(11) = "11111000" 
source(12) = "01010100" 
source(13) = "10010101" 
source(14) = "10010111" 
source(15) = "01011111" 
Command2.Enabled = False 
End Sub 
 
Private Sub Text1_KeyPress(KeyAscii As Integer) 
KeyAscii = valitext(KeyAscii, "", False) 
End Sub 
Function valitext(keyin As Integer, validatestring As String, editable As Boolean) As Integer 
Dim validatelist As String 
Dim keyout As Integer 
If editable = True Then 
validatelist = UCase(validatestring) & Chr(8) 
Else 
validatelist = UCase(validatestring) 
End If 
If InStr(1, validatelist, UCase(Chr(keyin)), 1) > 0 Then 
keyout = keyin 
Else 
keyout = 0 
Beep 
End If 
valitext = keyout 
End Function