Laboratorium 3 i 4: buffer overflow

strict warning: Only variables should be passed by reference in /usr/share/drupal6/modules/book/book.module on line 559.

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

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