Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Source Codes
Autor
Nachricht
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248

[B] Bruteforce source by ZiG
Verfasst am: 06.08.2007, 17:00

Hi Leute.

Da der Brutforce code den ich mal gefunden und gepostet habe scheinbar nicht ganz korrekt funktioniert und man ihn auch nicht leicht anpassen kann für seine Bedürfnisse, hab ich mal selbst einen code geschrieben.

Da ich eine Funktion daraus gemacht habe, könnt ihr ihn ziemlich leicht einsetzen. Oder ihr seht euch einfach mal an wie das ganze funktioniert. Ich kann euch aber gleich sagen das es nicht so leicht zu verstehen ist.


Hier mal die Grundfunktionen:
Er liest eine beliebige Zeichenkette ein. Z.B: "abcdefgIJKD21321". Und benutzt nur diese Zeichen dann.
Auf Permutation(Wikipedia) habe ich verzichtet. Das ist mir noch etwas zu steil.
Man kann die minimale und maxmimale Länge der Wörter eingeben.

Ich hab mir auch Mühe gegeben die Geschwindigkeit ans Maximum zu bringen, aber bei VB gelangt man leider schnell an seine Grenzen.
Mehr als 200.000 Wörter pro Sekunde schafft mein Computer nicht. (Ist aber ne lahme Ente^^).
Das ist kein Vergleich mit Codes in C++ etc, aber für VB sicher nicht schlecht.
Am besten nutzt ihr ihn für z.B. FTP Bruteforce, ICQ , Rar, etc.
Dort kann man sowieso nicht so schnell bruten.

Hier mal die Funktion:
Code:

Private Function BruteForce(ByVal CharString As String, ByVal xMin As Long, ByVal xMax As Long) As Boolean
On Error GoTo Err:

'Wenn keine Zeichen in CharString sind, dann wird abgebrochen
If Len(CharString) = 0 Then Exit Function

'Deklarationen
Dim i As Long, x As Long  'Zähler für die For Schleifen
Dim xCount As Long
Dim check As Boolean, Check2 As Boolean
Dim word As String
Dim CharArray() As Long, CharCount As Integer
Dim buffer() As Long, BufferCount As Long

'xCount ist die aktuelle Länge der Wörter die erstellt werden
xCount = xMin

'Hier lesen wir die Zeichen aus CharString in ein long Array ein.
'#########################
'In CharCount steht die Anzahl der Zeichen
CharCount = Len(CharString)
ReDim CharArray(CharCount)
For i = 1 To CharCount
 CharArray(i) = Asc(Mid(CharString, i, 1))
Next i
'#########################

'Schleife die solange läuft bis "xCount" gleich "xMax" ist
Do
 'Die ersten Zeichen werden in Buffer geladen
 BufferCount = xCount
 ReDim buffer(BufferCount)
 For i = 1 To xCount
  buffer(i) = CharArray(1)
 Next i
 
 'Erstes Wort wird erstellt
 For i = 1 To BufferCount
  word = word & Chr(buffer(i))
 Next i
 
  'Hier könnt ihr euren code einsetzen
  'In word ist logischerweise das Wort jetzt drinnen
  'Das ist aber immer nur das erste Wort jeder Wortlänge.
  'Weiter unten müßt ihr nochmal den selben code eingeben.

  'word umbedingt danach leeren.
  word = ""
 
 'Schleife die solange läuft bis alle Zeichen in "buffer" das letze Zeichen in CharArray geworden sind"
 'Das heißt bis alle Kombinationen mit dieser Länge an Zeichen erstellt wurden
 Do
  'Schleife in der die Zeichen solange erhöt werden bis sie das letze Zeichen in CharCount sind
  For i = xCount To 1 Step -1 'Diese Schleife läuft rückwärts. Das ist für buffer.
   
   'Falls buffer(i) das letze Zeichen in CharCount erreicht hat
   If buffer(i) = CharArray(CharCount) Then
    'Und wenn i ungleich 1 ist. (Wenn i gleich 1 wäre, dann gibt es nichts mehr davor zu erhöhen.
    If i <> 1 Then
     'Jetzt überprüfen wir das Zeichen vor i, ob es ungleich dem letzen Zeichen in CharArray ist.
     If buffer(i - 1) <> CharArray(CharCount) Then
      'Wenn ja, dann wird i wieder das erste Zeichen zugewiesen
      buffer(i) = CharArray(1)
     
      'Und i-1 müßen wir das nächste Zeichen zuweisen
      'Das geht nur, wenn wir erstmal wissen welches Zeichen nach diesem im CharArray steht
      'Hierzu eine Schleife, die im CharArray nach diesem Zeichen sucht.
      For x = 1 To CharCount
       If buffer(i - 1) = CharArray(x) Then
        buffer(i - 1) = CharArray(x + 1)
        Exit For
       End If
      Next x
     
      Exit For
     End If
    Else
     Exit For
    End If
   Else
    'Wenn buffer(i) noch nicht das letze Zeichen erreicht hat, dann wird ihm einfach das nächste Zeichen zugewiesen
    'Das geht nur, wenn wir erstmal wissen welches Zeichen nach diesem im CharArray steht
    'Hierzu eine Schleife, die im CharArray nach diesem Zeichen sucht.
    For x = 1 To CharCount
     If buffer(i) = CharArray(x) Then
      buffer(i) = CharArray(x + 1)
      Exit For
     End If
    Next x
    Exit For
   End If
  Next i
 
  'Wort zusammensetzen
  For i = 1 To BufferCount
   word = word & Chr(buffer(i))
  Next i
 
  'Hier könnt ihr euren code einsetzen
  'In word ist logischerweise das Wort jetzt drinnen

  'word umbedingt danach leeren.
  word = ""
     
  'In einer Schleife überprüfen ob vielleicht schon alle Zeichen in buffer() das letze Zeichen in CharArray erreicht haben.
  'Falls ja, dann kann die Schleife verlassen werden. Ansonsten läuft sie weiter.
  For i = 1 To BufferCount
   If buffer(i) = CharArray(CharCount) Then
    Check2 = True
   Else
    Check2 = False
    Exit For
   End If
  Next i
 
  DoEvents
 Loop Until Check2
 
 'Falls xcount die maximale Anzahl der zu erstellxmaxn Länge an Zeichen erreicht hat, wird die Schleife verlassen.
 If xCount = xMax Then check = True
 xCount = xCount + 1
Loop Until check

BruteForce = True

Exit Function
Err:
BruteForce = False
End Function


Ich hoffe mal dass ich keine Fehler gemacht habe.

Und hier noch ein kleines Übungsbeispiel für euch.
Download: http://rapidshare.com/files/69855495/DictionaryMaker.rar
pw: vb-x.org

Das ist ein kleiner Dictionary-Maker. Mit der Bruteforce Methode werden also Wörter in einer Datei erstellt.
Es sind auch ein paar Funktionen programmiert, wie ihr an der Gif Animation sehen könnt, die euch vielleicht interessieren.
Animation

Also, hf Wink
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)


Zuletzt bearbeitet von ZiG_ am 15.11.2007, 11:02, insgesamt 2-mal bearbeitet
 
Hamtaro_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 06.05.2007
Beiträge: 217
Wohnort: NRW


Verfasst am: 06.08.2007, 18:18

das ist doch mal ne runde sache!
also gut erklärt ,verständlich dargestellt und dann noch mit beispielen!
!Hut ab und bis zum Boden verneigen!
klasse, ZiG!
_________________
Wie findet ihr meine Sig?
 
Jolo_
Coder
Coder



Anmeldedatum: 20.03.2007
Beiträge: 210


Verfasst am: 13.08.2007, 20:02

Thx ZiG
Ich wollte schon immer mal wissen wie das mit dem Bruteforce in VB Funktioniert Smile
_________________
 
regenz11_
Coder
Coder



Anmeldedatum: 29.07.2007
Beiträge: 77


Verfasst am: 29.10.2007, 15:05


danke, du hast es echt drauf .... respekt Surprised
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Source Codes

Tags: bruteforce, source, code, icq, zig

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Visual Basic Download ? 1741 03.05.2011, 07:38
Keine neuen Beiträge Api Download in Prozent + Kb anzeige + Progrezzbar 1345 21.10.2007, 13:03
Keine neuen Beiträge Download 1358 30.08.2007, 15:45
Keine neuen Beiträge Download mit Internet Explorer Object 923 18.08.2008, 19:00
Keine neuen Beiträge Visual Basic 6 download 3699 26.05.2007, 11:51
 



[ Time: 0.2406s ][ Queries: 95 (0.0549s) ][ GZIP on - Debug on ]