Na początek utwórz i skompiluj następujący program:
Następnie wykonaj następujące kroki (które zawierają odniesienia do kodu
poniżej), aby zobaczyć HeapME w akcji:
- Użyj gdb do debugowania programu heapme_demo (1).
- Wykonaj polecenie gdb start (2).
- Uruchom wtyczkę pomocniczą do analizy sterty Gef (3).
- Przejdź do strony internetowej HeapME (https://heapme.f2tc.com/).
- Zarejestruj się i zaloguj.
- Utwórz i skopiuj nowy adres URL i klucz HeapME.
- Po skopiowaniu kliknij przycisk Dalej.
- Wróć do gdb i wklej linię heapme init
https://heapme.f2tc.com/ <id> <klucz> (4) .
- Będziemy używać heapme watch malloc (5) i heapme watch free (6), aby zaktualizować informacje o wszystkich fragmentach sterty i wolnych pojemnikach, ilekroć te
trafione zostaną punkty przerwania.
- Wykonaj c lub kontynuuj (7) . Powinieneś zobaczyć adres URL HeapME
aktualizowane w czasie rzeczywistym. Jest to także dobra okazja, aby pobawić się poleceniami sterty Gef (pojemniki sterty, fragmenty sterty itd.).
Przedstawiliśmy listę przydatnych narzędzi, które znacząco usprawnią proces analizy dynamicznej. Omówiliśmy także sposoby rozszerzenia i automatyzacji procesu debugowania za pomocą gdb. Przyjrzeliśmy się podatnemu na ataki kodowi sprawdzającemu koncepcję z exploitem napisanym w Pythonie przy użyciu środowiska programistycznego pwntools. Na koniec zbadaliśmy narzędzie do analizy i współpracy sterty HeapME (Heap Made Easy).