AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bruteforce Dauer verkleinern

Ein Thema von derseitzer · begonnen am 13. Feb 2017 · letzter Beitrag vom 14. Feb 2017
 
Pixel

Registriert seit: 23. Aug 2016
26 Beiträge
 
#8

AW: Bruteforce Dauer verkleinern

  Alt 13. Feb 2017, 15:21
Einfach so einen guten Bruteforce zu schreiben ist nicht.

Ich kenne mich nicht im Detail aus, aber kann dir paar Sachen sagen:

1) Bruteforce dauer kannst du nicht pauschalisieren, denn wie lange es dauert hängt von der Hardware ab.
2) Du kannst mit der CPU bruteforcen (die ja heutzutage oft 8 Kerne hat) oder du kannst mit der Grafikkarte bruteforcen (GTX 1080 hat z.b. 2560 Kerne).

Hier fängt es an: Die Anzahl der Kerne ist natürlich von großer Bedeutung, du kannst pro Kern schließlich 1 Versuch jeweils parallel laufen lassen.

Klar, es gibt auch Multithreading, aber da ist eben zu unterscheiden, dass nur ganz schnell zwischen den Versuchen "hin und her geswitched" wird und nicht wirklich parallel gearbeitet wird (auf 1 Kern).

Ich erkenne an deinem Code dass du noch viel weniger Plan hast als ich, also hier ein paar Tipps:

1) Achte imemr darauf, dass du Variablen per Referenz übergibst und nicht als Kopie.

Wenn du also eine Funktion hast:

Delphi-Quellcode:
function TestPassword(APlain : string) : boolean;
begin
  Result := False;
  if MD5(APlain) = pass then
    Result := True;
end;

und du diese Funktion so aufrufen würdest:

for i := 0 to 100000000 do
begin
  if TestPassword(arr[i]) then
  begin
    showmessage('found');
  end;
end;
dann würde hier jedes Element aus arr bei der Übergabe an TestPassword kopiert werden, was auch ziemlich ineffizient ist. Also Call-by-Reference angucken.


2) Auf keinen Fall sowas machen wie jedes Passwort in ein Memo schreiben, das dauert ewig.

3) Multithreading, dazu kann man die Klasse TThread verwenden.


Abschließend lässt sich nur sagen dass es zwar schön zu sehen ist dass du dich für was interessiert und es auch versucht hast, aber dir mangelt es sehr wahrscheinlich an Wissen um sowas wirklich gut umsetzen zu können.

Edit:// Und wie schon gesagt wurde, bruteforced dein Code gar nichts, sondern gibt nur strings auf einem Memo aus.

Um das zu beschleunigen gibts übrigens Memo1.Beginupdate und Memo1.Endupdate.

Geändert von mkinzler (13. Feb 2017 um 17:54 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz