Ergebnis 1 bis 10 von 26

Baum-Darstellung

  1. #20
    OpCodeKiddy Avatar von EBFE
    Registriert seit
    30.03.2009
    Beiträge
    442

    Standard

    1. keine Kopierereien und "höhere" Datentypen wie Strings (ein "string[x]" Zugriff artet nämlich intern in einige Calls aus und ist keineswegs mit dem "char* hallo[x]" gleichzusetzen). Gleiches gilt für "Concatenierungen" oder gar "+" Operatoren bei Strings.
    nimm ein chararray, initialisiere es am Anfag mit 0 und schreibe direkt die Zeichen rein.

    2. alle Infos möglichst im voraus berechnen - so auch die Passwortlänge.
    3. MD5 Routine aus den Libs ist keineswegs optimal - denn diese sind dazu gedacht, "echte" Daten zu hashen. Sofern man aber auf 12-13 Zeichen beschränkt ist, kann man einiges wegoptimieren:
    das ist nämlich der Algo:
    Message-Digest Algorithm 5 – Wikipedia
    z.B dieser Schritt:
    Code:
    b := ((a + f + k(i) + w(g)) leftrotate r(i)) + b
    also das einbeziehen der Eingabe (=w(g) Wert):

    so schaut der Speicherzugriff bei 20 Zeichen und 64 Runden:

    und so bei 4 Zeichen:

    hier kann man sich also jede Menge Speicherzugriffe sparen.
    Zudem lassen sich die letzen 15-18 der 64 Runden (länger her) zurückrechnen, was wiederum eine "Verschnellerung" um 25% bietet. Den ultimativen Boost bringt aber Parallelisierung mittels MMX oder gleich SSE:
    Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
    (hier solltest du, je nach Kenntnissstand, ruhig einige Wochen zum durcharbeiten einplanen )
    Damit erreicht man mehere zig Mio Hashs pro Sekunde (z.B auf meinem 3 Jahre altem Laptop 32 Mio Hashs/s pro Kern - gegenüber BarsWFs 27 Mio H/s ). Setzt aber voraus, dass man sich mit SSE erstmal beschäftigt (C++ Compiler wird hier einem keineswegs die Arbeit abnehmen - vielleicht nur insofern, dass er die SSE Register selbstständig vergibt, allerdings muss man dem Compiler an vielen Schritten zu seinem "Glück" verhelfen. Letzendlich schaut der hochoptimierte Code wie Macro-Asm aus:
    Distracted: New and faster EmDebr finally done
    (Md5 cracker mit Source, unwesentlich langsamer als BarsWF)

    4. Nicht zuletzt solltest du dich mit Profilersoftware vertraut machen, um die tatsächlichen Problemstellen zu finden. Zumindest eine gute Timerbibliothek suchen und einbauen, so dass man die Zeit für einzelne Abschnitte messen kann und so abschätzen, was am meisten Rechenzeit kostet und optimiert werden muss.
    Geändert von EBFE (13.06.2010 um 19:38 Uhr)
    TrueCrypt/RAR/Zip Passwort vergessen und das Bruten dauert ewig? Oder brauchst du fein abgestimmte Wortlisten? Hilf dir selbst mit WLML - Word List Markup Language
    Gib Stoned/Mebroot/Sinowal und anderen Bootkits keine Chance: Anti Bootkit v 0.8.5

  2. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    noctem (14.06.2010), ocz (13.06.2010)

Ähnliche Themen

  1. Code Help! PLZ
    Von unna456654 im Forum (X)HTML & CSS
    Antworten: 1
    Letzter Beitrag: 21.12.2008, 13:36

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •