![]() |
Re: TBruteForce - Version 0.1.1 Beta
Zitat:
Desweiteren finde ich keine Demo mit einer Superspeed-Option ... :gruebel: |
Re: TBruteForce - Version 0.1.1 Beta
Zitat:
edit: ich habe :shock: jetzt sollte sie es aber sein... |
Re: TBruteForce - Version 0.1.1 Beta
Liste der Anhänge anzeigen (Anzahl: 1)
oO... das ist ein XP 3000+. wieso is dat bei dir so schnell und bei mir so langsam?
|
Re: TBruteForce - Version 0.1.1 Beta
Zitat:
|
Re: TBruteForce - Version 0.1.2 Beta
Neue Version 0.1.2 Beta released
Download ![]() Die Demo wurde aktualisiert. Download ![]() |
Re: TBruteForce - Version 0.1.2 Beta
bei mir macht er anscheinend auch doppelte. das sehe ich daran dass ich als zeichenfolge 0123456789 genommen habe
und die anzahl möglichkeiten ist meiner meinung nach 10 hoch 7 (10 mögliche zahlen, 7 stellen), aber ich habe jetzt 11097221 keys also 1097221 zu viel woran liegt das PS: mein pc macht 95051.95762 möglichkeiten pro sekunde |
Re: TBruteForce - Version 0.1.2 Beta
Zitat:
In der nächsten Version wirds gefixt sein, thx an vlees der nachgerechnet hat :zwinker: |
Re: TBruteForce - Version 0.1.2 Beta
Was mal ganz schön wäre, wenn du noch eine Textdatei bereitstellen könntest, die von a-z,von A-Z,0-9 alle Wörter mit einer Länge von 1-10 Buchstaben enthält. Weil mit nem 1 GHz PC ist das schwer zu realisieren ;)
|
Re: TBruteForce - Version 0.1.2 Beta
Zitat:
|
Re: TBruteForce - Version 0.1.2 Beta
meinste? Gibts ne Methode um zu berechnen, wieviele Strings erstellt werden können?
Vielleicht hast du dir ja auch schonmal die Frage gestellt :) Edit: Was hastn für ne Uploadgeschwindigkeit? :mrgreen: |
Re: TBruteForce - Version 0.1.3 Beta RC 1
|
Re: TBruteForce - Version 0.1.3 RC 2
|
Re: TBruteForce - Version 0.1.3 RC 2
tata... es ist so weit, ich weiß ihr konntet es alle kaum erwarten, hier ist das heisersehnte neue Release :mrgreen:
09.05.2006: Version 0.3b und aktualisierte Demo released
TMaxThreads legt fest, wie viele Threads die Komponente maximal gleichzeitig verwendet. Wie immer bedeutet 0 hier unbegrenzt OnThreadStart wird immer dann ausgeführt, wenn ein Thread gestartet wird BruteForce.KeyList hier werden nun die erzeugten Keys abgelegt, die seperate Komponente TKeyList ist direkt in der Klasse TBruteForce eingebunden Algorithm Wahl zwischen bfIterative und bfRecursive, also iterativem und rekursivem Algorithmus TThreadStatus nicht mehr hardgecodet, es gibt bis jetzt tsActive, tsComputing, tsFinished, tsSuspended Kann sein dass ich noch ein paar Änderungen vergessen habe, das letzte Release ist lange her ;) Download der Komponente im ersten Post ![]() Die Demoanwendung gibts da ebenfalls ![]() bei Zeiten muss ich dann mal eben diesen ersten Post aktualisieren, stimmt auch nicht mehr alles so ganz, und die Übersicht leidet :stupid: |
Re: TBruteForce - Version 0.3b final
Soderle.
Hiermit wird die Entwicklung an dieser Version der Komponente endgültig eingestellt! In ausführlichen Tests sind mir keine weiteren Fehler begegnet, die Komponente dürfte also recht stabil laufen ;) Allerdings wird es eine Nachfolgeversion geben, die allerdings auf einer völlig anderen Architektur beruht, die, ihr werdet es euch schon gedacht haben, natürlich viel besser ist als die jetzige :mrgreen: Wann ich es bei dieser neuen Version zu einem Release bringe kann ich allerdings noch nicht wirklich abschätzen. Hiermit wird jedenfalls die Version 0.3b als Final erklärt, es wird keine weitere geben! Den Anfangspost habe ich bei der Gelegenheit auch noch gleich neu gestaltet ;) greetz |
Re: TBruteForce - Version 0.3b final
Liste der Anhänge anzeigen (Anzahl: 1)
ich hätte da noch was an der Demo auszusetzen (das Bild ist wohl selbsterklärend... Weis wurde der eine Teil, da die ListBox beim Klick auf View Keys wohl überfordert wurde^^)
|
Re: TBruteForce - Version 0.3b final
Zitat:
|
Re: TBruteForce - Version 0.3b final
Ich oute mich jetzt mal als leidenschaftlicher Threads-von-anno-Klondyke-Ausgraber, aber das beweist ja, dass dieses gute Werk auch heute noch Beachtung findet =)
Ich brauche für eine kleine Anwendung eine multithreadingfähige Bruteforce-Komponente - TBruteForce hört sich da recht gut an. Nur leider scheitere ich an einem schier unbedeutenden Punkt... Installation 1. Dateien entpacken 2. Die TBruteForce.dpk Datei in Delphi öffnen 3. Das Package compilieren (dazu zuerst den Bibliothekspfad ergänzen) 4. Das Package installieren 5. Datei > Alles schließen :( Entpacken schaff ich noch souverän, dpk in Delphi öffnen mach ich auch noch, als hätt ich mein Leben lang nichts anderes gemacht, aber wie und wo ergänze ich den Bibliothekspfad? Ich öffne die Datei also, klicke OK bei der Meldung, dass die *.res-Datei neu erzeugt wurde und dann hab ich da das kleine Fensterchen mit "Contains" und "Requires", wo ich auf Compile drücken kann. Wenn ich das einfach so mach, kommt natürlich ein Fehler - ich hab ja den ollen Bibliothekspfad nicht ergänzt, weil ich natürlich nicht weiß, was das ist und wo ich es eintrage :) Ich tät mich ganz arg freuen, wenn einer kurz Zeit finden würde, mir die Welt der Bibliothekspfade näher zu bringen =) Grüße Dani |
Re: TBruteForce - Version 0.3b final
Das geschieht über Tools -> Optionen -> Bibliotheken. Dort kannst du Directorys angeben, in diesem Falle den Source Ordner.
|
Re: TBruteForce - Version 0.3b final
Hm, tut mir leid, dass ich so unwissend bin, aber was genau muss ich da ändern? Tools -> Umgebungsoptionen -> Bibliothek und dann hab ich da Bibliothekspfad, BPL-Ausgabeverzeichnis, DCP-Ausgabeverzeichnis und Suchpfad. Ich schätze, ich muss bei "Bibliothekspfad" was hinzufügen, oder? Also klick ich auf ... und füge da ein Verzeichnis hinzu, aber welches? Was ist der Source Ordner? Der mit der BruteForce.pas oder der Ordner Programme\Delphi 7\Source? Sowohl bei dem einen, als auch beim anderen kommt beim anschließenden Klick auf "Compile" der [Fehler] BruteForce.pas(141): Ungültige Compileranweisung: 'REGION'. :(
|
Re: TBruteForce - Version 0.3b final
mich würds auch mal interessieren, was ich tun muss, um die Fehler:
[Fehler] BruteForce.pas(141): Ungültige Compileranweisung: 'REGION' [Fehler] BruteForce.pas(474): Ungültige Compileranweisung: 'ENDREGION' [Fehler] BruteForce.pas(479): Ungültige Compileranweisung: 'REGION' [Fehler] BruteForce.pas(601): Ungültige Compileranweisung: 'ENDREGION' wegzubekommen rollstuhlfahrer |
Re: TBruteForce - Version 0.3b final
Einfach die enstpechenden
Delphi-Quellcode:
rauslöschen, das sind imho bloß codefolding Anweisungen, die von älteren Delphi Versionen nicht unterstützt werden.
{$REGION 'XXX'}
{$ENDREGION} Grüße phreax |
Re: TBruteForce - Version 0.3b final
ich hab da mal ein paar Rechenexempel gemacht und dabei gesehen:
Ein Programm, dass nur aus TBruteForce und ein paar Labels/Edits besteht verbraucht 408 MB Arbeitsspeicher, wenn der BruteForce (Start: 1; Ende: 4) eine Liste mit allen Groß/Klein-Buchstaben und Zahlen machen soll. Errechnet hat das Programm 58 MB allein die Strings in der Keylist. Auf langsamen, hauptspeicherarmen Rechnern sollte das nicht gestartet werden (~7 sec zum erstellen) rollstuhlfahrer |
Re: TBruteForce - Version 0.3b final
Zitat:
Möglicherweise werde ich, wenn es meine Freiziet einmal wieder zulassen sollte, eine Komponente mit einem anderen Verfahren, dass zur Berechnung kaum RAM benötigt, basteln, aber im Moment gibts da keine Hoffnung. Trotzdem freue ich mich dass dieses Ding hier immernoch Beachtung findet - So toll ists ja nun eigentlich auch wieder nicht :stupid: |
Re: TBruteForce - Version 0.3b final
ich hab die Komponente jetzt umgeschrieben, dass sie bei jedem neu erzeugtem Key eine CallBack-Routine aufruft...
Ungetestet, bin aber der Meinung, dass sie noch nicht ganz funktioniert rollstuhlfahrer |
Re: TBruteForce - Version 0.3b final
Naja, ist schon bisschen schräg, dass eine Bruteforce-Komponente so viel RAM verfrisst... sollte ja eigentlich die CPU belasten, nicht den RAM :) aber liegt halt daran, dass mit den "Worten" nichts angefangen wird. Wenn man mit jedem Wort eine Überprüfung durchführt, etwa für ein Passwort, und es danach löscht, hält sich der Arbeitsspeicherverbrauch in Grenzen.
Aber so... naja, mal anpassen :) |
Re: TBruteForce - Version 0.3b final
Zitat:
|
Re: TBruteForce - Version 0.3b final
Tut sie? Hm, irgendwie verstehe ich die Komponente nicht... wo kann ich denn auf das aktuelle Element zugreifen? Wenn mit jeder Kombination ein Vorgang ausgeführt wird, der ungefähr 400ms dauert, dann sollte das ja nicht im Bruteforcealgorithmus geschehen, sondern anhand des aktuellen Elements soll ein neuer Thread erzeugt werden, der diesen Vorgang ausführt und sich danach selbst beendet, und dann sollte das aktuelle Element gelöscht werden, oder? Kann man das überhaupt so realisieren? Hm, ich bin sogar für Delphi zu dumm =(
|
Re: TBruteForce - Version 0.3b final
Hi Mädels!
Ich hab mir den Thread jetzt nicht duchgelesen. Aber falls es noch nicht erwähnt worden sein sollte: Der Einsatz von Bruteforce auf einem anderen Rechner als den eigenen ist ein Straftatbestand. In Frage kommen da Computerbetrug und oder Computersabotage. Ob sich eine Vorstrafe im Lebenslauf lohnt muss jeder selbst entscheiden. :warn: |
Re: TBruteForce - Version 0.3b final
Zitat:
Lies bitte den Thread bevor du sowas schreibst ... dann wirst du merken des die komponente hier nichts verbotenes ist. |
Re: TBruteForce - Version 0.3b final
Zitat:
Ich kenn mich nicht so gut im deutschen Recht aus, würde aber erstmal denken, dass diese Aussage falsch ist. Ein BrutForce-Programm welches zur Beschaffung von Informationen gedacht ist, welche nicht für dritte bestimmt sind, ist mit sicherheit illegal, ein Bruteforce-Algorithmus an sich nicht. Aber ich lasse mich gerne eines besseren belehren, aber bitte belege das dann auch mit Quellen. Gruß Ansgar |
Re: TBruteForce - Version 0.3b final
ich hab delphi 2005 personal, hab dadpackage auch installiert und so aber beim ausführen will delphi immer irgendeine bruteforce.dcu datei oder so haben weil die in der uses liste steht!
|
Re: TBruteForce - Version 0.3b final
kann mir da keiner helfen; was mach ich falsch???
|
Re: TBruteForce - Version 0.3b final
wenn du alles installiert hast gib bei deiner windows suche "bruteforce.dcu" ein und den pfad dieser datei den du dann finden wirst fuegst du der library hinzu:)
das wars;) o0o |
Re: TBruteForce - Version 0.3b final
Zitat:
Zitat:
|
Re: TBruteForce - Version 0.5a [Update: 28.04.208]
Es ist soweit. Hier kommt die komplett überarbeitete neue Version...
28.04.2008: Version 0.5a "Pandora" released Diese neue Version hat absolut nichts mehr mit der Version 0.3b gemeinsam - sprich alle Beiträge in diesem thread vor diesem sind hiermit hinfällig :mrgreen: Ich habe die Klasse von Grund auf neu programmiert! Download: ![]() Über TBruteForce 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:
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.
uses
BruteForce;
Delphi-Quellcode:
Wie viele Kombinationen die Klasse erzeugen wird lässt sich über
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 ;)
Delphi-Quellcode:
auslesen.
BruteForce.ToDo
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:
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:
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;
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 ;) Download der Klasse im ersten Post ![]() Eine Demo mit der neuen Klasse gibt es in kürze. |
Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
ja das klappt ja alles schon ganz gut :)
allerdings wie du schon geasgt hast sind vor allem die teilbarkeit der aufgaben und das laden und speichern sehr wichtig. das hat das ganze auch für mich attraktiv gemacht :) die verwendung ist sehr gut und einfach gelungen. wie kann man denn die konstaten für das alphabet kombinieren? kann man die arrays irgendwie addieren? also wenn du das kombinieren noch etwas optimierst und den oben genannten kram einbaust hat sich das neuschreiben auf jeden fall gelohnt. gruß |
Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
Das beste in dem Thread ist noch das Kommentar von Insider2004...lol
Nicht das BruteForce ein allgemein übliches verfahren für zig Standard Probleme der Informatik wäre(Handlungsreisender, Volumen mit unterschiedlichen Packeten Optimal befüllen, etc.) Und dann Heist der auch noch "Insider"....Ich schmeiß mich weg. |
Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
Zitat:
wenn du allerdings bei einem bestimmten string anfangen kannst zu rechen, ist das aufteilen auf mehrere pcs natürlich schon praktisch fertig. :) Zitat:
Zitat:
Delphi-Quellcode:
hast, dass das sehr langsam ist weil erst wieder str eingelesen wird und dann str komplett neu geschrieben wird. Da wurde irgendwas von
str := str + str2;
Delphi-Quellcode:
geredet... keine ahnung, kannst du dich ja mal schlau machen.
appendstr()
ich hab außerdem gesehen, dass du das alles immer dem Result hinzufügst. ist das genauso schnell wie bei einer lokalen variable? oder kann man das noch optimieren indem man eine lokale variable nimmt und result erst zum schluss zuweist? gruß EDIT: Also wenn ich
Delphi-Quellcode:
benutze bringt das bei mir etwa 100.000 bis 300.000 Kombinationen pro sekunde mehr. :)
AppendStr()
|
Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
Zitat:
Zitat:
siehe ![]() ![]() Zitat:
Delphi-Quellcode:
:lol:
function AppendStr(const Source: string; Dest: string): string;
begin Result := Dest + Source; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 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