objdump

https://chacker.pl/

Możemy używać objdump jako deasemblera wiersza poleceń, a także do uzyskiwania ważnych informacji o plikach wykonywalnych i obiektach. Zdobądźmy trochę informacji na temat pliku binarnego hello.

Uzyskiwanie tabeli globalnych przesunięć (GOT) i tabeli powiązań procedur (PLT)

Analizując pozbawiony plików binarnych, możesz użyć objdump, aby odwrócić adres pamięci interesującej funkcji. Za pomocą opcji -R możesz wyświetlić listę funkcji w GOT-u:

Teraz użyjmy objdump do zlokalizowania adresu, który zostanie wywołany w PLT, aby dostać się do funkcji puts():

Oto kilka punktów, na które warto zwrócić uwagę:

  • -M intel informuje objdump, aby używał trybu składni Intel zamiast domyślnego (AT&T).
  • -d jest skrótem od –disassemble.
  • -j .plt określa sekcję, którą chcemy wyświetlić (PLT).

Teraz użyjemy opcji -j .text, aby znaleźć wywołanie puts w analizowanym programie:

Znajdowanie odniesień do ciągów stałych

W niektórych sytuacjach może być konieczne znalezienie odniesień do ciągów znaków w pozbawionych plików binarnych, aby przyspieszyć proces debugowania, lub znaleźć magiczne gadżety w obiekcie. Odniesienia do ciągów znaków możemy znaleźć w dwóch krokach. Pierwszym krokiem jest

gdzie -tx (-t oznacza podstawę, x oznacza wartość szesnastkową) wypisuje przesunięcie w pliku na początku każdego łańcucha. Drugi krok to

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *