Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TBruteForce - Version 0.5a [Update: 28.04.2008] (https://www.delphipraxis.net/52211-tbruteforce-version-0-5a-%5Bupdate-28-04-2008%5D.html)

Meflin 25. Aug 2005 13:54


TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Liste der Anhänge anzeigen (Anzahl: 2)
TBruteForce
Wer hätt's gedacht - eine Brute Force Klasse für Delphi
http://www.delphipraxis.net/images/common/divider.jpg
Aktuelle Version: 0.5a
Download: im Anhang [6,39 KB]



Was ist TBruteForce?

TBruteForce ist eine Klasse, mit der die Implementierung einer BruteForcing-Funktion im eigenen Programm möglichst einfach und gleichzeitig möglichst universell ermöglicht werden soll. Die aktuelle Version verbraucht an sich kaum Arbeitsspeicher (es sei denn der Programmierer entscheidet sich dazu, die erzeugten Kombinationen in irgendeiner Form zwischenzuspeichern). Das bedeutet, dass für die Performance des Vorgangs (abgesehen von der Effektivität des Codes) allein die Prozessorgeschwindigkeit verantwortlich ist.
Bei einem 2GHz Prozessor(kern) liegt die blose Geschwindigkeit bei etwa 50.000.000 Kombinationen pro Sekunde, durch das Zusammensetzen der strings zur Ausgabe verringert sich die Geschwindigkeit auf etwa 2.000.000 Kombinationen pro Sekunde (hier besteht eindeutig Optimierungsbedarf ;) ). Lässt man sich jetzt noch alle Kombinationen sichtbar ausgeben, beispielsweise in einer Konsole, so verringert sich die Geschwindigkeit weiter auf ca. 20.000 Kombinationen pro Sekunde.
So, ich hoffe nun hast Du eine ungefähre Vorstellung in welchen Geschwindigkeitsbereichen man sich mit der Klasse theoretisch und in der Praxis bewegen kann.



Verwendung

Um die Klasse in Betrieb zu nehmen, ist nichts weiter nötig, als die Unit BruteForce.pas in das Projektverzeichnis zu kopieren und in die uses der fraglichen Unit aufzunehmen.
Delphi-Quellcode:
uses
  BruteForce;
Um mit einem einfachen Beispiel zu beginnen: Wir wollen Kombinationen mit 5 Zeichen Länge erzeugen, der Zeichenvorrat soll dabei das Alphabet in Kleinbuchstaben sein. Oder anders ausgedrückt wir wollen alle Kombinationen von aaaaa, aaaab, aaaac, ... bis zzzzx, zzzzy, zzzzz bilden.
Delphi-Quellcode:
var
  BruteForce: TBruteForce;
begin
  // Instanzierung
  BruteForce := TBruteForce.Create;

  // Wir wollen 5 Stellen kombinieren, sg. "Nodes"
  BruteForce.NodeCount := 5;

  // Zeichenvorrat setzen, AlphaLowerCase ist eine Konstante die von der Unit bereitgestellt wird
  // Als ElementList erwartet die Klasse ein array of string. BFConstToDynArray wandelt ein
  // statisches array of string in ein dynamisches array of string um.
  BruteForce.ElementList := BFConstToDynArray(AlphaLowerCase);

  // Soderle. Bereits jetzt enthält BruteForce.Value die erste Kombinationen, in diesem Fall aaaaa.
  // Also müssen wir die gleich ausgeben.
  DoSomething(BruteForce.Value);

  // Jetzt gehts ans eigentliche BruteForcen, wir bilden die Kombinationen
  // BruteForce.NextValue bildet die nächste Kombinationen und gibt das Ergebnis als string zurück
  while not BruteForce.Finished do begin
    DoSomething(BruteForce.NextValue);
  end;

  // Wuppdi - jetzt sind wir schon fertig ;)
Wie viele Kombinationen die Klasse erzeugen wird lässt sich über
Delphi-Quellcode:
BruteForce.ToDo
auslesen.


Jetzt ist es aber so, dass man jedem Node seinen eigenen Zeichenvorrat zuweisen kann. D.h. wir könnten beispielsweise auch Kombinationen der länge 5 erzeugen, bei denen die letzten beiden Zeichen Ziffern sind. Das ginge so:
Delphi-Quellcode:
var
  BruteForce: TBruteForce;
begin
  BruteForce := TBruteForce.Create;
  BruteForce.NodeCount := 5;
  BruteForce.ElementList := BFConstToDynArray(AlphaLowerCase);
  // Jetzt kommts ;)
  BruteForce.Nodes[0].ElementList := BFConstToDynArray(Numeric);
  BruteForce.Nodes[1].ElementList := BFConstToDynArray(Numeric);

  DoSomething(BruteForce.Value);

  while not BruteForce.Finished do begin
    DoSomething(BruteForce.NextValue);
  end;
Dieser Code würde alle Kombinationen von aaa00, aaa01,... bis zzz99 ausgeben. Jetzt wunderst Du dich vielleicht, wieso wir den Zeichenvorrat der Nodes 0 und 1 ändern und nicht den der Nodes 3 und 4 (die Zahlen sollen ja rechts hin). Nunja, je weiter ein Node links steht, desto höherwertiger ist er. Deshalb wird der Node, der in der Ausgabe die "rechteste" Stelle repräsentiert über den Index 0 angesprochen. Puh, ich hoffe das ist einigermasen verständlich :stupid:
Code:
Wort a a a 0 0
Node 4 3 2 1 0

To Do

Bei der Version 0.5a handelt es sich um ein experimentelles Release. Es sind noch kaum Fehlerbehandlungsroutinen eingebaut! Bis jetzt ist es auch so, dass NodeCount unbedingt vor ElementList gesetzt werden muss (ein Henne-Ei-Problem für das ich bis jetzt keine überzeugende Lösung gefunden habe).
Einbauen will ich noch eine Speichern/Laden Funktion, die Möglichkeit, den BruteForce-Vorgang in beliebig viele Pakete aufzuteilen (Multithreading, Parallel Computing), sowie eine Ausgabe der Kombinationen wahlweise als array of string (bzw. TBFElementList). Ich habe auch schon mit dem Gedanken gespielt, beliebige Dinge kombinierbar zu machen (beispielsweise Integer, Objekte, etc). Aber ich bin mir nicht sicher, ob sich der Aufwand lohnen würde.

Ich würde mich freuen, wenn von euch noch Vorschläge und Anregungen kämen, wie man die Komponente noch erweitern könnte ;)



Changelog

Code:
28.04.2008: Version 0.5a "Pandora" released
     Neu: 100% Codebasis ;)
     Kein Multithreading mehr integriert
     Es ist keine Komponente mehr

09.05.2006: Version 0.3b und aktualisierte Demo released
     Neu: Wahl zwischen iterativem und rekurivem Algorithmus
     Neu: TMaxThreads property
     Neu: OnThreadStart Event
     Neu: KeyList jetzt direkt in TBruteForce implementiert, keine 2 Komponenten mehr
     TThreadStatus nicht mehr hardgecodet
     Und alles, was ich inzwischen vergessen habe :(

05.10.2005: Version 0.1.3 Beta RC 2 und aktualisierte Demo released
     Minibugfix beim OnProgressChangeEvent gefixt

03.10.2005: Version 0.1.3 Beta RC 1 und aktualisierte Demo released
     Bugfix: Komponente zählt jetzt richtig
     Bugfix: Memory Leak entfernt
     Performance: Callback Funktion OnProgressChange geht jetzt nicht mehr so auf die Performance

30.08.2005: Version 0.1.2 Beta und aktualisierte Demo released
     Bugfix: das Problem, das das OnLastThreadFinished Event öfter ausgeführt wird sollte behoben sein
     Bugfix: Kleine Unsauberheit beim Progresscounter behoben
     Bugfix: OnProgressChangeTolerance war etwas zu tolerant
     Neu: eine Exception wurde ergänzt

29.08.2005: Demo released

27.08.2005: Version 0.1.1 Beta und neue Demo released
     Bugfix: bei EndLength = 1 werden jetzt nicht mehr fälschlicherweise die 2-stelligen Keys erzeugt
     Neu: Event OnProgressChange
     Neu: public property OnProgressChangeTolerance
     Neu: Exception Handling

26.08.2005: Demo released

25.08.2005: Version 0.1 Beta released

Daniel G 25. Aug 2005 14:02

Re: TBruteForce - Version 0.1 Beta
 
Hey, nicht schlecht :thumb:

Mal eine etwas andere Komponente. Auch wenn die Funktionen größtenteils ja selbsterklärend sind, wäre ein kleines Beispielprogramm nicht schlecht.

Stanlay Hanks 25. Aug 2005 14:09

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von Meflin
Achtung: BrutForce.Stop sollte nur im Notfall verwendet werden, da diese Methode TerminateThread und damit all dessen Nebenwirkungen beinhaltet

Hi Meflin :) Nur so Interesse halber, welche "Nebenwirkungen" wären das denn?

Meflin 25. Aug 2005 14:13

Re: TBruteForce - Version 0.1 Beta
 
@Stan:
Zitat:

Zitat von MSDN
TerminateThread can result in the following problems:
  • If the target thread owns a critical section, the critical section will not be released.
  • If the target thread is allocating memory from the heap, the heap lock will not be released.
  • If the target thread is executing certain kernel32 calls when it is terminated, the kernel32 state for the thread's process could be inconsistent. [tut meiner afaik nicht]
  • If the target thread is manipulating the global state of a shared DLL, the state of the DLL could be destroyed, affecting other users of the DLL. [tut meiner nicht]

@Daniel G: das wird sich machen lassen :)


MisterNiceGuy 25. Aug 2005 14:21

Re: TBruteForce - Version 0.1 Beta
 
Schneller!! Her mit der Demo :D

Ah doch, habs schon kapiert ;)

SirThornberry 25. Aug 2005 14:26

Re: TBruteForce - Version 0.1 Beta
 
Seh ich das richtig das alle Varianten dann in eine Liste gespeichert werden? Oder wird die Liste immer erst gefüllt wenn man was rausnimmt? Wenn dem nicht so isst dürfte der Speicherverbrauch etwas sehr groß sein bis hinn zum Absturz des Programmes weil der Speicher nicht reicht.

MisterNiceGuy 25. Aug 2005 14:36

Re: TBruteForce - Version 0.1 Beta
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab mal ne Demo erstellt die nur die einfachsten Funktionen nutzt.

Meflin 25. Aug 2005 14:38

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von SirThornberry
Seh ich das richtig das alle Varianten dann in eine Liste gespeichert werden? Oder wird die Liste immer erst gefüllt wenn man was rausnimmt? Wenn dem nicht so isst dürfte der Speicherverbrauch etwas sehr groß sein bis hinn zum Absturz des Programmes weil der Speicher nicht reicht.

Im Prinzip führt es zum Absturz, wenn der Anwender nix mit den Keys macht ja. Ich habe auch schon überlegt ob ich so eine Art backward-Steuerung einbaue sprich aber einer bestimmten Anzahl Keys in TKeyList hält TKeyList TBrutForce an, und wenn wieder weniger Keys drin sind setzt sie TBruteForce fort. Das wäre kein großer Aufwand, die Frage ist, ob der Bedarf besteht.

@Mister: Freut mich dass das Ding so einfach ist dass man ohne Hilfe ein Demo damit bauen kann :stupid:


SirThornberry 25. Aug 2005 14:41

Re: TBruteForce - Version 0.1 Beta
 
ich würde eher vorschlagen das du die X'te Variante erst bei der Abfrage berechnest.
Denn so wie es Oktal, Hexdezimal, Dezimal gibt kannst du auch einfach die erlaubten zeischen handhaben und somit auch den Key schnell zusammenbauen wenn die Variante 5329393 abgefragt wird.

Meflin 25. Aug 2005 14:48

Re: TBruteForce - Version 0.1 Beta
 
Zu Mister Nice Guys Demo:
So ganz tut sie nicht was sie verspricht :zwinker: Man kann zwar zur Laufzeit Angaben machen, allerdings werden die nicht verwendet, sondern die, die Mister reincomiliert hat...
Wenn du jetzt noch das OnLastThreadFinished Event von TBruteForce verwendest, um das "Anzeigen" automatisch durchzuführen, und die Property BruteForce.Percentage um den Fortschritt anzuzeigen, dann hast du im großen und ganzen alles drin.

@Sir: das dürfte mit meiner verwendeten Methode so nicht durchführbar sein. Um den Xten Key zu bekommen, muss immer erst der X-1nte erzeugt werden. Insofern sehe ich den Sinn dann nciht so ganz


Vjay 25. Aug 2005 14:56

Re: TBruteForce - Version 0.1 Beta
 
Er meint dass du die xte Variante ausrechnest und nicht die Liste bis X durchläufst.

Meflin 25. Aug 2005 15:21

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von Vjay
Er meint dass du die xte Variante ausrechnest und nicht die Liste bis X durchläufst.

:gruebel: Ich verstehe nciht ganz... glaube wir reden aneinander vorbei. Welche Liste soll ich denn durchlaufen?


MisterNiceGuy 25. Aug 2005 15:24

Re: TBruteForce - Version 0.1 Beta
 
Gott wie peinlich, das war dann doch irgendwie zu schnell... Auf jedenfall ist jetzt ne vernünftige Demo da, die auch die Eigenschaften übernimmt die man eingibt und alles auf einen Klick erledigt :)

Meflin 25. Aug 2005 15:33

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von MisterNiceGuy
Gott wie peinlich, das war dann doch irgendwie zu schnell... Auf jedenfall ist jetzt ne vernünftige Demo da, die auch die Eigenschaften übernimmt die man eingibt und alles auf einen Klick erledigt :)

fast :thumb: : du musst noch SubString mit Chars gleichsetzen, sonst kommt nciht ganz das raus was der User erwartet. Das tust du nicht bis jetzt oder? (Der OI macht das von selber wenn man nix anderes angibt)


jfheins 25. Aug 2005 15:34

Re: TBruteForce - Version 0.1 Beta
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es gibt noch einen fehler - zumindest in der Demo:

Meflin 25. Aug 2005 15:40

Re: TBruteForce - Version 0.1 Beta
 
@Julius: Das ist das was ich einen Beitrag vor dir meinte, stimmt zwar was rauskommt, stimmt aber nciht mit dem überein was der user in dem fall haben will.


kingflo 26. Aug 2005 08:17

Re: TBruteForce - Version 0.1 Beta
 
Liste der Anhänge anzeigen (Anzahl: 1)
der fehler ist auch wenn man nur Zahlen benutzen will

Meflin 26. Aug 2005 09:32

Re: TBruteForce - Version 0.1 Beta
 
Klar, ist aber ein Fehler in der Demo, nicht in der Kompo :P
Ich werd heut mal eine suführlichere Demo schreiben, die auch ein paar mehr Funktionen benutzt.


Meflin 26. Aug 2005 10:27

Re: TBruteForce - Version 0.1 Beta
 
Demo released

Sie kann zwar noch nicht alles was die Komponente kann, aber das wichtigste ist drin :)

Download: erster Post, Anhang


Luckie 26. Aug 2005 10:41

Re: TBruteForce - Version 0.1 Beta
 
Da stimmt wa snicht mit dem Algorithmus. Ich habe alle kleinen Buchstaben eingeben und gesagt mindestens drei, höchstens fünf Buchstaben. Raus kam:
Zitat:

caa
caaa
caaaa
caaab
...
Wo ist
Zitat:

cab
cba
abc
bca
...
Sind da 29 Thread gelaufen oder warum steh 29 mal 'Thread finished' in der unteren Listbox?

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  ProgressBar1.Position := Round(BruteForce1.Percent);
end;
Warum hat deine Komponente kein Ereignis, welches den Fortschritt zurückgibt? Mit einem Timer ständig abzufragen, wie weit er ist, ist mehr als unglücklich.

Nachtarg: Beim Beenden deines Demos, hat es mich mit Fehlern nur so zugeschmissen.

jfheins 26. Aug 2005 10:42

Re: TBruteForce - Version 0.1 Beta
 
Gib mal bspw. ab und c ein und dann 2 bis 1 Buchstaben :mrgreen:


@Luckie: Die sind nahezu alphabetisch geordnet - es gibt auch diese Kobis ;)

Meflin 26. Aug 2005 11:01

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von Luckie
Da stimmt wa snicht mit dem Algorithmus. Ich habe alle kleinen Buchstaben eingeben und gesagt mindestens drei, höchstens fünf Buchstaben.

Der stimmt ;)

Zitat:

Sind da 29 Thread gelaufen oder warum steh 29 mal 'Thread finished' in der unteren Listbox?
wenn du 29 zeichen angibst, dann waren das auch 29 threads, ja (in klammern jeweils die threadid)

Zitat:

Warum hat deine Komponente kein Ereignis, welches den Fortschritt zurückgibt? Mit einem Timer ständig abzufragen, wie weit er ist, ist mehr als unglücklich.
auf die idee bin ich noch garnicht gekommen, klingt aber gut, nur wann soll ich dieses ereignis auslösen? bei jedem erzeugten key? das wäre *sehr* oft...

Zitat:

Nachtarg: Beim Beenden deines Demos, hat es mich mit Fehlern nur so zugeschmissen.
Das wiederum ist seltsam, bei mir funzt es einwandfrei, was waren das für fehler?

@julius: gegen blödheit schützt keine software :zwinker:


Luckie 26. Aug 2005 11:10

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von Meflin
Zitat:

Zitat von Luckie
Da stimmt wa snicht mit dem Algorithmus. Ich habe alle kleinen Buchstaben eingeben und gesagt mindestens drei, höchstens fünf Buchstaben.

Der stimmt ;)

Wenn der stimmt, wo sind denn dann
Code:
aaa
aab
abb
baa
...
cab
cba
abc
bca
...
???
Ah hab sie gefunden. Sortier die Ausgabe doch mal alphabetisch. ;)

Zitat:

Zitat:

Warum hat deine Komponente kein Ereignis, welches den Fortschritt zurückgibt? Mit einem Timer ständig abzufragen, wie weit er ist, ist mehr als unglücklich.
auf die idee bin ich noch garnicht gekommen, klingt aber gut, nur wann soll ich dieses ereignis auslösen? bei jedem erzeugten key? das wäre *sehr* oft...
Ich würde es immer dann auslösen, wenn er ein Prozent weiter ist und das hast du ja schon in der Eigenschaft BruteForce1.Percent.

Zitat:

was waren das für fehler?
Zitat:

Die Ausnahme "Unbekannter Softwarefehler" (0x0eedfade) ist in der Anwendung an der Stelle 0x77e9bc3f aufgetreten.
Zitat:

Access violation at address 0045D2B6 in module 'DBruteForce.exe'. Read of address 00000220.
Mit der letzten wurde ich dann zugeschmissen bis zum geht nicht mehr.

jfheins 26. Aug 2005 11:28

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von Meflin
@julius: gegen blödheit schützt keine software :zwinker:

Das sollte Sie aber, soll heißen, du müsstest in der Setter-Procedure die Eingabe auf ihre Gültigkeit überprüfen ;)

Btw. Gib mal abc ein und dann 1 bis 2, und danach 1 bis 1 ... irgendwas stimmt da nicht ;)

Meflin 26. Aug 2005 12:16

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von jfheins
Das sollte Sie aber, soll heißen, du müsstest in der Setter-Procedure die Eingabe auf ihre Gültigkeit überprüfen ;)

den peter kann ich auch dem anwender zuschieben. dann müsste ich exceptions produzieren, das hatte ich auch schon drin, und das widerum stört so manchen user, also hab ichs wieder raus.

Zitat:

Btw. Gib mal abc ein und dann 1 bis 2, und danach 1 bis 1 ... irgendwas stimmt da nicht ;)
das geht auch wenn du gleich am anfang 1 bis 1 eingibst, macht zwar keinen sinn, aber ich werds reparieren. (minibug)

@lukie: mit tkeylist.sort kann man das ganze sortieren, muss natürlich vor dem eintrag in die listbox passieren.
das mit dem event werde ich wohl machen, allerdings doch erweiterter, nämlich mit einer zusätzlichen property, in der man angeben kann nach wie viel prozent fortschritt das event ausgelöst wird, denn je nach vorgang kann es ja schon seeehr lange dauern bis man 1% weiter ist, also könnte da der user bei 0.0001% das event auslösen lassen.


Luckie 26. Aug 2005 12:19

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von Meflin
den peter kann ich auch dem anwender zuschieben. dann müsste ich exceptions produzieren, das hatte ich auch schon drin, und das widerum stört so manchen user, also hab ichs wieder raus.

Wieso stört es den Benutzer? Wenn der Programmierer richtig mit den Exceptions umgeht, ist das kein Problem. Exceptions sind auch gar nicht für den Benutzer gedacht, sondern für den Programmierer zur Fehler-/Ausnahmebehandlung.

Meflin 26. Aug 2005 12:21

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von Luckie
Wieso stört es den Benutzer? Wenn der Programmierer richtig mit den Exceptions umgeht, ist das kein Problem. Exceptions sind auch gar nicht für den Benutzer gedacht, sondern für den Programmierer zur Fehler-/Ausnahmebehandlung.

Mit Benutzer meinte ich in dem Fall den Programmierer, den "Benutzer der Komponente". Ich habe schon öfter Leute gehört, die sich beispielsweise darüber aufregten, dass die Indies bei jedem Pfiff eine Exception werfen (und sie deswegen nicht verwenden :shock: )

Das einzubauen wäre das kleinere Problem.


Meflin 27. Aug 2005 10:56

Re: TBruteForce - Version 0.1 Beta
 
Aloha!

Und schon gibt es die erste neue Version:

Neue Version 0.1.1 Beta und neue Demo released
  • Bugfix: bei EndLength = 1 werden jetzt nicht mehr fälschlicherweise die 2-stelligen Keys erzeugt
  • Neu: Event OnProgressChange
  • Neu: public property OnProgressChangeTolerance
  • Neu: Exception Handling

Das mit dem OnProgressChange funzt so: immer wenn die Percent um OnProgressChangeTolerance gewachsen sind, wird das Event aufgerufen. Der Standard ist 1.0, d.h. immer wenn ein Prozent vollendet ist wird das Event aufgerufen.

Die Demo wurde an die neue Kompo angepasst


jfheins 27. Aug 2005 11:15

Re: TBruteForce - Version 0.1 Beta
 
Gib mal bspw. abc ein, 1 bis 1 Buchstaben (==> a, b und c) und dann def, und nochmal Start, dann steht in der ListBox
abcabcdef ;) (also abc wied nochmal ausgegeben ...)

Jelly 27. Aug 2005 11:25

Re: TBruteForce - Version 0.1 Beta
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab auch noch ein Fehler gefunden, siehe Screenshot:

Irgendwie scheinen mir alle Werte doppelt aufzutauchen.

Meflin 27. Aug 2005 11:52

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von jfheins
Gib mal bspw. abc ein, 1 bis 1 Buchstaben (==> a, b und c) und dann def, und nochmal Start, dann steht in der ListBox
abcabcdef ;) (also abc wied nochmal ausgegeben ...)

das ist keineswegs ein bug, sondern logisch.
1. Start: TKeyList füllt sich mit abc, abc wird in listbox eingetragen
2. Start: TKeyList bekommt nochmal def, also insgesamt abcdef, die werden zusätzlich in die listbox eingetragen -> abcabdef, völlig korrekt und einwandfrei ;)
edit: oder doch nicht :gruebel: mom mal...
nochmal edit: doch, stimmt so

@jelly: wie produzierst du das? scheint so als hättest du zweimal auf start geklickt, da auch 6 statt 3 threads gestartet wurden :gruebel:


Jelly 27. Aug 2005 12:43

Re: TBruteForce - Version 0.1 Beta
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Meflin
@jelly: wie produzierst du das? scheint so als hättest du zweimal auf start geklickt, da auch 6 statt 3 threads gestartet wurden :gruebel:

Nochmals ein Anhang, wo nur 3 Threads laufen, die Einträge trotzdem doppelt sind...
Ich glaub nicht, dass ich 2 mal deinen button betätige... allerdings stimmts schons, dass nicht immer die einträge doppelt auftauchen.... Ich kann dir aber nicht sagen, wann das der Fall ist... mal so mal so.

Meflin 27. Aug 2005 12:48

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von Jelly
Nochmals ein Anhang, wo nur 3 Threads laufen, die Einträge trotzdem doppelt sind...
Ich glaub nicht, dass ich 2 mal deinen button betätige... allerdings stimmts schons, dass nicht immer die einträge doppelt auftauchen.... Ich kann dir aber nicht sagen, wann das der Fall ist... mal so mal so.

Das klingt so als ob die TKeyList nicht auf ThreadSave gestellt wäre, was aber nicht sein kann, wenn du die kompilierte Exe verwendest. Tust du das?


Jelly 27. Aug 2005 12:50

Re: TBruteForce - Version 0.1 Beta
 
Doch, steht auf Threadsafe := true.

Wenn ich direkt die Echse starte, scheint das Problem in der Tat nicht aufzutauchen...

Meflin 28. Aug 2005 13:18

Re: TBruteForce - Version 0.1.1 Beta
 
Habe ich das so richtig verstanden: wenn du die Demoexe direkt ausführst tritt das Problem nicht auf, aber wenn du die Demo unverändert kompilierst dann tritt es auf?

Das ist dann extremst mistriös, vor allem, wenn man es nicht reproduzieren kann, wie soll ich da herrausfinden wwas schiefläuft :gruebel:


matze.de 28. Aug 2005 16:07

Re: TBruteForce - Version 0.1.1 Beta
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab nen bisschen mit der demo rumgespielt und dann kommt direkt das was auf dem Screenshot zu sehen is :) Ne Masse an Ausnahmefehlern...

mfg matze

Meflin 28. Aug 2005 17:06

Re: TBruteForce - Version 0.1.1 Beta
 
Zitat:

Zitat von matze.de
Ich hab nen bisschen mit der demo rumgespielt und dann kommt direkt das was auf dem Screenshot zu sehen is :) Ne Masse an Ausnahmefehlern...

mfg matze

jo, ich denke dass ist der den luckie meinte, ich hab ihn inzwischen auch mal hinbekommen: passiert das, wenn du während noch keys in die listbox eingetragen werden das programm beendest? dann handelt es sich um den bug, der aber dann an der quickndirty demo liegt udn nicht an den kompos :)


Meflin 28. Aug 2005 19:25

Re: TBruteForce - Version 0.1 Beta
 
Zitat:

Zitat von Jelly
Doch, steht auf Threadsafe := true.

Wenn ich direkt die Echse starte, scheint das Problem in der Tat nicht aufzutauchen...

Ich habs raus, woran es liegt: unter umständen kann es passeiren, dass das OnLastThreadFinished Event öfters ausgeführt wird, wenn die threads ziemlich kurz hintereinander enden, was ich natürlich beheben muss, aber dadurch werden einfach die keys zweimal in die listbox eingetragen.
ich kann zwar nicht mit 100%iger Sicherheit sagen dass es das ist, aber ich vermute es doch stark. mit der neuen bald veröffentlichten demo wird sich das auch ganz leicht feststellen lassen :)


Jelly 28. Aug 2005 20:09

Re: TBruteForce - Version 0.1.1 Beta
 
Naja... its not a bg, it's a feature :roll:
Ich denk auch nicht dass einer das Programm nutzt für 3-stellige Codes aus den Zeichen a, b und c. :zwinker:

Meflin 29. Aug 2005 15:58

Re: TBruteForce - Version 0.1.1 Beta
 
Liste der Anhänge anzeigen (Anzahl: 1)
Soderle, es gibt wieder eine neue Demo, Download im ersten Post Anhang.
Die Demo zeigt jetzt auch an wie viele Passwörter in welcher Zeit erzeugt wurden und hat einen Modus integriert, der auf Geschwindigkeit optimiert ist.

Jetzt würde mich doch mal brennend interresieren was ihr so schafft mit dem Teil, ich lege mal vor: 8,5Mio Keys in nichtmal einer halben Sekunde, also grob 17Mio k/s (keys per second)

Beweis im Anhang (Gruß an Patrick L. aus A. :hi: ) :mrgreen:



Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz