Zrozumienie polecenia Readelf Linux

Zrozumienie polecenia Readelf Linux
Podczas pracy z różnymi programami i kompilatorami takimi jak GCC, Często kończą się kompilowanie programów w formacie binarnym, który jest wykonywalny. Wygenerowany plik obiektowy jest tylko zrozumiały przez maszynę, a jedynym sposobem, w jaki ludzie mogą pracować i zrozumieć jego zawartość, jest użycie czytanie Komenda. W odczycie możesz wyodrębnić informacje z plików ELF (format wykonywalny i połączalny). Program Readelf jest prawie podobny do objdump. Ale z Readelf otrzymujesz bardziej szczegółowe szczegóły i w przeciwieństwie do objdumpa, nie polega to na BFD biblioteka.

Praca z poleceniem Readelf Linux

Przed rozpoczęciem korzystania z polecenia ReadElf zainstaluj go za pomocą następującego polecenia:

$ sudo apt instal instalacja binutils

Po zainstalowaniu możesz otworzyć jego stronę pomocy, wpisując jej nazwę na terminalu.

$ Readelf

Istnieją różne opcje do użycia z odczytem. Postaramy się omówić większość z nich za pomocą przykładów. Po pierwsze, upewnij się, że masz plik ELF do użycia dla próbki.

W naszym przykładzie użyjemy C Kod programu, z którym będziemy się skompilować GCC Aby przekonwertować go na elfa, jak pokazano następująco:

Użyj następującej składni, aby sprawdzić, czy plik jest w formacie ELF.

$ plik-nazwa nazwa

Jeśli plik jest elfem, powinien powrócić jako elf w swoim wyjściu, jak pokazano na poniższym obrazku:

Wyświetlanie nagłówków pliku elfa

Czytanie oferuje -H flaga, która wymienia wszystkie nagłówki w określonym elfie. W naszym przypadku możemy wymienić wszystkie nagłówki w ELF-PILE1 Jak pokazano następująco:

$ readelf -h elf -file1

Wyświetlanie nagłówków programu ELF

Jeśli chcesz wyświetlić nagłówki programu pliku, użyj flagi -L.

Podobnie możesz uzyskać nagłówki sekcji za pomocą flagi -s. Wyjście pokazuje różne sekcje zawarte w przestrzeni adresowej procesów:

Wyświetlanie tabeli symboli

Plik ELF zawiera tabele symboliczne. Możesz wyodrębnić ich informacje za pomocą flagi -s.

Możesz zwrócić uwagę na różne wpisy w sekcjach tabeli symbolu pliku, jak w poprzednim wyjściu.

Ponadto możliwe jest zawęzienie wyjścia i określenie, która sekcja wśród nagłówków sekcji, aby uzyskać swoje szczegóły. Składnia tego jest:

$ readelf -p [nazwa sekcji] [nazwa pliku]

Na przykład użyjmy .strtab.

Nasze wyjście to:

Poprzednie wyjście jest bardziej zrozumiałe i specyficzne dla sekcji.

Wyświetlanie podstawowych notatek

Jeśli plik ma jakieś segmenty lub sekcje notatek, -N Flaga wyświetla zawartość. Możesz go użyć jak na poniższym przykładu:

Niektóre z wyświetlanych zawartości zawierają dane właściciela i rozmiar danych.

Wyświetlanie histogramu

Możesz reprezentować długości listy wiadra w histogramie podczas wyświetlania treści tabeli symboli. -I Opcja jest używana lub -histogram.

Wyświetlanie sekcji relokacji

Jeśli plik ELF ma sekcje relokacji, możesz uzyskać zawartość za pomocą -R Lub -przeniósł flaga.

Ponadto, jeśli plik ma jakiekolwiek sekcje dynamiczne, zawartość sekcji można pobrać za pomocą -D flaga.

Zawartość obejmuje znacznik, typ oraz nazwę lub wartość dla każdej zawartości.

Ilość informacji o pliku ELF, które można wyodrębnić za pomocą polecenia Readelf Linux, jest nieograniczona. Strona Man oferuje wiele opcji, których możesz użyć do różnych zadań. Wszystko, czego potrzebujesz, to poszukiwanie jednej opcji, która osiąga to, do czego zamierzasz i używasz.

Wniosek

Omówiliśmy polecenie Readelf Linux, jak je zainstalować i jak zacząć korzystać z narzędzia. Jeśli szukasz narzędzia do wyświetlania różnych informacji o plikach ELF, Readelf jest idealny do zadania. Ma wiele opcji, a dobrą rzeczą jest to, że jest łatwy w użyciu, jak widzieliśmy w danych przykładach. Wypróbuj to!