Laboratorium 3 i 4: buffer overflow

Na początek należy przypomnieć sobie assemblera na poziomie umożliwaijącym zrozumienie krótkiego programu.

Ćwiczenia

  • Napisać w C program, który wczytuje liczbę i jeżeli jest równa 42 wypisuje "TAK". Z pliku wykonywalnego odczytać kod assemblerowy i odnaleźć fragmenty wykonujące poszczególne elementy programu (funkcję main, wczytywanie, porównanie, wypisywanie, napis "TAK").
  • Napisać kod w assemblerze, który można wywołać jako funkcję w C z parametrem typu int, która zwraca int - 13 jeżeli podana liczba była podzielna przez 4 a 0 w przeciwnym przypadku.

A następnie postępować według scenariusza laboratoryjnego z zeszłego roku: https://www.mimuw.edu.pl/~kdr/bsk/lab5 .

Zaliczenie 2018

Zaliczenie 2018

Spakowane w umieszczonym poniżej pliku crackme2018 i crackme2018.trudne są zmodyfikowanymi wersjami crackme05 i crackme05b z podlinkowanego scenariusza - program napisany jest inaczej, ale pełni tę samą funkcję. Należy przygotować poprawny plik wykonywalny i odpowiadającej mu sumę kontrolną.

ZałącznikWielkość
crackme2018.zip6.72 KB

Zaliczenie 2019

Spakowane w umieszczonym poniżej pliku crackme2019 i crackme2019.trudne są zmodyfikowanymi wersjami crackme05 i crackme05b z podlinkowanego scenariusza - program napisany jest inaczej, ale pełni tę samą funkcję. Należy przygotować poprawny plik wykonywalny i odpowiadającej mu sumę kontrolną.

ZałącznikWielkość
crackme2019.zip6.56 KB

Zaliczenie 2020

Green Forest Bank stosuje następującą politykę udostępniania dokumentu: wraz z plikiem jest udostępniany jest skrót wykonany Tajną Funkcją. Klienci weryfikują za pomocą dostępnego poniżej programu crackme2020 że plik i skrót podany przez bank pasują do siebie. Aby podszyć się pod bank potrzebujemy umieć wygenerować plik i pasujący do niego skrót.

Spakowane w umieszczonym poniżej pliku crackme2020 i crackme2020.trudne są zmodyfikowanymi wersjami crackme05 i crackme05b z podlinkowanego scenariusza - program napisany jest inaczej, ale pełni tę samą funkcję. Należy przygotować poprawny plik wykonywalny (np. kopię /usr/bin/ls) i odpowiadającą mu sumę kontrolną. Podczas oddawania zadania prowadzący może poprosić o wyznaczenie sumy dla innego pliku.

ZałącznikWielkość
crackme2020.zip6.59 KB