Eine Idee ! - aber umsetzung ?
-
MFK schrieb:
El Kassem schrieb:
So dann sieht er :" A .. " oke . das erste zeichen stimmt..
Und woran soll "er" das sehen?

Das Programm meldet ja nicht "Falsch, aber das erste Zeichen war schon richtig". Wäre auch ziemlich dämlich, wenn es das täte.
Tja aber es gibt solche Bruter..(angeblich) halt.. Keine Ahnung ich hatte noch nie nen Bruter..
Also geht das etwa nicht ?
-
Das geht nicht. Normalerweise greift man auch nicht direkt einen Login an, sondern hat ein gehashtes Passwort und lässt den Brute Force darüber laufen. Ein Hash ist am Ende immer gleich lang, egal ob du 1 Zeichen hashst oder 200. Daher kann man auch nie sehen ob ein bestimmtes Zeichen im Passwort enhalten ist.
Und wenn du direkt den Login angfreist, kannst du das richtige Passwort nie sehen. Kein Login ist so bescheuert programmiert (wie MFK schon sagte) das er sagt welches Zeichen richtig ist oder das überhaupt ein Zeichen richtig war. Mir ist auch kein Brute Forcer bekannt der von sich behauptet sowas zu können. Es gibt aber ein Spiel, welches sowas etwa macht und das nennt sich Mastermind.
Greetz
-
OKe
Das heißt ich muss es dann bruten ?
Wie mach ich das ?
Ich will aber noch immer direkt den Login angreifen !? bzw. die cin abfrage ?
-
Was hast du denn nun vor? Willst du einen Brute-Force sicheren Login programmieren oder willst du ein fremdes Programm knacken?
(Brute Force läuft darauf hinaus, daß du nacheinander ALLE möglichen Passwörter durchtestest, bis du mit einem ins System kommst - und solange dein Programm clever genug ist, nur mit einem "passt" oder "falsches PW" zu antworten, meint das wirklich ALLE)
-
fremdes ( bzw. mein eigernen ) Programme knacken .
Ja
er soll alle möglichkeiten durchtesten ..
Halt wenns eght auf ne recht schnelle variante ?! :))
-
Brute Force geht niemals schnell (außer du verwendest extrem kleine Passwörter). Und alle Passwörter erzeugen kannst du z.B. rekursiv:
bool generateandtest(const string& pw,int max_size) { //überprüfe, ob das Passwort stimmt: if(check_pw(pw) == OK) return true; //zum Schutz gegen Stack-Überlauf: if(pw.size()>max_size) return false; for(char c=0;c<=255;++c) if(generateandtest(pw+c)) return true;//nächstlängeres Passwort erzeugen und rekursiver Aufruf }Und jetzt kannst du nur noch darauf hoffen, daß du max_size groß genug gewählt hast - und wenn es schnell gehen soll, daß das Passwort nur aus \0 besteht

-
was geht dann schneller als bruteforce ?
-
die idee ist ziemlich "doof".
wenn es praktische anwendung haben soll (sprich: du willst programm XY überlisten) vergiss es direkt wieder. da gibt es andere ansätze.
möchtest du dich generell mit "passwörtern"/verschlüsselung auseinandersetzen lies dir doch erstmal grundlegende themen der kryptographie durch.
ein guter anfang wäre zB die vigenere-verschlüsselung
-> EDIT: sorry, falsches copy and paste
hier der richtige link:
http://de.wikipedia.org/wiki/Polyalphabetische_Substitutionwenn du dann mal etwas kontakt mit der materie hattest, werden dir wesentlich bessere konzepte unterkommen als "bruteforcing".
-
Ohne Vorkenntnisse über das Zielsystem: wohl nichts.
Mit entsprechenden Kenntnissen könntest du Wörterbuch-Angriffe (setzt natürlich voraus, daß ein Passwort mit "Sinn" gewählt wurde) oder Heuristiken (um wahrscheinlichere Passwörter zuerst zu überprüfen) ansetzen. Wenn das Programm das PW wirklich fest als "if(pass=="xyz")..." verdrahtet hat, kannst du auch die EXE ansehen und nach verdächtigen Zeichenfolgen untersuchen.
-
was soll mir der link nützen ? http://www.c-plusplus.net/forum/viewtopic-var-t-is-182245.html ^^
-
El Kassem schrieb:
was soll mir der link nützen ? http://www.c-plusplus.net/forum/viewtopic-var-t-is-182245.html ^^
editiert, siehe oben