clsBF.cls
上传用户:yffx2008
上传日期:2022-07-23
资源大小:6k
文件大小:4k
源码类别:

P2P编程

开发平台:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "clsBF"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. '****************************************************************************
  15. '人人为我,我为人人
  16. '枕善居汉化收藏整理
  17. '发布日期:05/06/05
  18. '描  述:破解Access 数据库密码
  19. '网  站:http://www.mndsoft.com/
  20. 'e-mail:mnd@mndsoft.com
  21. 'OICQ  : 88382850
  22. '****************************************************************************
  23. Dim sCharSet() As String
  24. Dim sFirstPass As String
  25. Dim sCurrentPass As String
  26. Dim iStartLen As Integer
  27. Dim PassPos() As Integer
  28. Dim sTotalCombo As String
  29. Public Event CombinationsPerSec(Combos As Long)
  30. Public Event TotalCombinations(Combos As String)
  31. Private Declare Function GetTickCount Lib "kernel32" () As Long
  32. Property Let CharacterSet(value As String)
  33.     ReDim sCharSet(Len(value))
  34.     
  35.     For X = 1 To UBound(sCharSet)
  36.         sCharSet(X) = Mid(value, X, 1)
  37.     Next
  38. End Property
  39. Property Get CharacterSet() As String
  40.     Dim sTmp As String
  41.     For X = 1 To UBound(sCharSet)
  42.         sTmp = sTmp & sCharSet(X)
  43.     Next
  44.     
  45.     CharacterSet = sTmp
  46. End Property
  47. Property Let FirstPassword(value As String)
  48.     sFirstPass = value
  49. End Property
  50. Property Get FirstPassword() As String
  51.     FirstPassword = sFirstPass
  52. End Property
  53. Property Let CurrentPassword(value As String)
  54.     sCurrentPass = value
  55. End Property
  56. Property Get CurrentPassword() As String
  57.     CurrentPassword = sCurrentPass
  58. End Property
  59. Property Let StartLength(value As Integer)
  60.     iStartLen = value
  61. End Property
  62. Property Get StartLength() As Integer
  63.     StartLength = iStartLen
  64. End Property
  65. Private Sub Combinations()
  66.     Static lComboCount As Long
  67.     Static lComboTime As Long
  68.     lComboCount = lComboCount + 1
  69.     If GetTickCount - lComboTime >= 1000 Then 'if a second has past then
  70.         DoEvents
  71.             RaiseEvent CombinationsPerSec(lComboCount) 'Display # of combinations For that second
  72.             lComboTime = GetTickCount
  73.             sTotalCombo = sTotalCombo + lComboCount 'add to total of combinations
  74.             lComboCount = 0 'reset number of Combinations For the Next second
  75.             RaiseEvent TotalCombinations(sTotalCombo) 'Display # of total combinations
  76.         End If
  77.     End Sub
  78. Sub Initialize()
  79.     sTotalCombo = 0
  80.     If StartLength = 0 Then StartLength = 1
  81.     If FirstPassword = "" Or Len(FirstPassword) < StartLength Then
  82.         CurrentPassword = String(StartLength, sCharSet(1))
  83.     Else
  84.         CurrentPassword = sFirstPass
  85.     End If
  86.         
  87.         ReDim PassPos(Len(CurrentPassword))
  88.         For X = 1 To Len(CurrentPassword)
  89.             For Y = 1 To UBound(sCharSet)
  90.                 If Mid(StrReverse(CurrentPassword), X, 1) = sCharSet(Y) Then
  91.                     PassPos(X) = Y
  92.                     Exit For
  93.                 End If
  94.             Next
  95.         Next
  96.     
  97. End Sub
  98. Function BruteForce() As String
  99.     Dim sTmp As String
  100.     Dim X As Integer, Y As Integer
  101.     Dim TmpPass() As Integer
  102.     For X = 1 To Len(CurrentPassword)
  103.         If X = Len(CurrentPassword) And PassPos(X) >= UBound(sCharSet) Then
  104.             ReDim TmpPass(UBound(PassPos))
  105.             For Y = 1 To UBound(PassPos)
  106.                 TmpPass(Y) = PassPos(Y)
  107.             Next
  108.             ReDim PassPos(UBound(PassPos) + 1)
  109.             PassPos(UBound(PassPos)) = 0
  110.             For Y = 1 To UBound(TmpPass)
  111.                 PassPos(Y) = TmpPass(Y)
  112.             Next
  113.         End If
  114.         If PassPos(X) >= UBound(sCharSet) Then
  115.             PassPos(X) = 1
  116.             PassPos(X + 1) = PassPos(X + 1) + 1
  117.             If PassPos(X + 1) <= UBound(sCharSet) Then Exit For
  118.         Else
  119.             PassPos(X) = PassPos(X) + 1
  120.             Exit For
  121.         End If
  122.     Next
  123.     For X = UBound(PassPos) To 1 Step -1
  124.         sTmp = sTmp & sCharSet(PassPos(X))
  125.     Next
  126.     
  127.     Combinations
  128.     CurrentPassword = sTmp
  129.     BruteForce = CurrentPassword
  130. End Function