You are on page 1of 4

Sebastian Jaros, 200724 Termin zajęć:

śr, 10:15
28.10.2015

Raport z zajęć
Reverse engineering
Cel ćwiczenia
Znaleźć poprawne hasło dla programów dla numeru użytkownika, który jest numerem
indeksu studenta: 200724.

Keygen
Program Keygen zawiera symbole ułatwiające logowanie. Dzięki temu po uruchomieniu
programu w debugerze i ustawieniu pułapki na funkcji main i odpaleniu, można wygodnie
przejrzeć program w postaci kodu assemblera za pomocą komendy:
disas

Można zauważyć w linii 268, że program używa do porównania haseł metody strncmp.
Mając tą wiedze możemy ustawić pułapkę na tej funkcji i odczytać ze stosu porównywane
hasła. By uzyskać do niego dostęp drukujemy rejestry komendą:
info registers
Rejestr %esp zawiera wierzchołek stosu. Drukujemy ostatnie 16 wartości położone na stos
komendą:
x/16x 0xbfffef8c

Jedna z ostatnio odłożonych wartości na stos zawiera interesujące nasz hasło. W tym
wypadku jest to wartość 3, którą możemy wyświetlić komendą:
print (char*) 0x0804c030

Szukane hasło w programie Keygen dla numeru użytkownika 200724 to: xws2yp60
Keygen1
Program Keygen1 nie zawiera symboli ułatwiających logowanie. Zakładając, jednak że
program jest podobny do poprzedniego, możemy założyć ze do porównania haseł również
jest użyta funkcja strncmp. Wtedy można podjąć takie same kroki jak przy poprzednim,
programi, tj. wyświetlić rejestry w odpowiednim miejscu i odczytać wartość hasła ze stosu.
Szukane hasło w programie Keygen1 dla numeru użytkownika 200724 to: xws2yp60

Keygen2
Z programem Keygen2 należy postąpić tak samo jak z poprzednimi programami.
Szukane hasło w programie Keygen2 dla numeru użytkownika 200724 to: xvq1}u07

Podsumowanie
Udało się poznać hasła dla użytkownika o numerze 200724, dla każdego z programów. Te
hasło to:

 xws2yp60 dla Keygen


 xws2yp60 dla Keygen1
 xvq1}u07 dla Keygen2