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