Ich habe eine Binärdatei und soll das Passwort knacken (Hausaufgaben). Es wurde auch eine Funktion angegeben (eine Funktion, die Teil der Binärdatei ist). Diese Funktion hat gezeigt, dass die Eingabezeichenfolge Zeichen für Zeichen mit dem korrekten Kennwort verglichen und sofort false zurückgegeben wurde, wenn ein Zeichen falsch war (dies ist vermutlich nicht sicher, da die Zeit abläuft und wir eine Vorstellung von der korrekten Kennwortlänge als haben Beispiel). Aber unser Lehrer hat einen zufälligen Timer hinzugefügt, der das Ergebnis (Richtig / Falsch) zurückgibt, um es für uns etwas schwieriger zu machen ...
Jedenfalls habe ich es schon erfolgreich mit Reverse Engineering gemacht und das richtige Passwort bekommen. Jetzt spiele ich damit in der Kommandozeile:
/usr/bin/time -v ./program_name enter_password
Mit diesem Befehl erhalte ich viele Informationen wie Systemzeit, Auslagerungen, Ausführungszeit. Am interessantesten für mich sind jedoch "Freiwillige Kontextwechsel", da je korrekter die Zeichen des von mir eingegebenen Kennworts sind, desto weniger "Freiwillige Kontextwechsel" " Ich bekomme!
Je mehr falsche Zeichen ich eingebe, desto mehr "Freiwillige Kontextwechsel" bekomme ich.
Ich habe fast zwei Stunden gebraucht, um das Passwort zu knacken, indem ich diesen Befehl eingegeben, Zeichen eingegeben und "Freiwillige Kontextwechsel" beobachtet habe. Immer wenn EIN Zeichen korrekt war, wurde der Wert für "Freiwillige Kontextwechsel" um eins verringert.
Meine Frage, was genau sind "Voluntary Context Switches" und warum haben sie mir geholfen, das Passwort zu knacken?