Mam plik binarny i mam złamać hasło (zadanie domowe). Podano także funkcję (funkcję, która jest częścią pliku binarnego). Ta funkcja pokazała, że łańcuch wejściowy został porównany z prawidłowym hasłem znak po znaku i natychmiast zwrócił fałsz, gdy znak jest zły (to chyba nie jest bezpieczny sposób, ponieważ jest to czas przeciekania i otrzymujemy pomysł na prawidłową długość hasła jako przykład). Ale nasz nauczyciel dodał losowy licznik czasu, który zwraca wynik (poprawny / błędny), aby było nam trochę trudniej ...
W każdym razie udało mi się to już z powodzeniem za pomocą inżynierii wstecznej i otrzymałem prawidłowe hasło. Teraz gram z nim w wierszu poleceń:
/usr/bin/time -v ./program_name enter_password
Dzięki temu poleceniu otrzymuję wiele informacji, takich jak czas systemowy, zamiany, czas wykonania .. Ale najbardziej interesujące są dla mnie „Dobrowolne przełączanie kontekstu”, ponieważ im więcej prawidłowych znaków hasła wprowadzę, tym mniej „Dobrowolne przełączanie kontekstu " Dostaję!
Im więcej błędnych znaków wprowadzę, tym więcej dostaję „Dobrowolnych przełączników kontekstu”.
Złamanie hasła zajęło mi prawie dwie godziny, wpisując to polecenie, wprowadzając znaki i obserwując „Dobrowolne przełączanie kontekstu”. Ilekroć JEDNA postać była poprawna, „Dobrowolne przełączanie kontekstu” zmniejszało się o jeden.
Moje pytanie, czym dokładnie są „Dobrowolne zmiany kontekstu” i dlaczego pomogły mi złamać hasło?