Niebieski lis. Polecenia procesorów Arm i inżynieria wsteczna Bydgoszcz

Procesory ARM są coraz popularniejsze w urządzeniach mobilnych, laptopach i serwerach. Rosnąca popularność czyni je interesującymi dla badaczy bezpieczeństwa. Specjaliści z tej branży często używają technik inżynierii wstecznej podczas badania plików binarnych. W tym celu konieczne jest zapoznanie …

od 56,30 Najbliżej: 0 km

Liczba ofert: 8

Oferta sklepu

Opis

Procesory ARM są coraz popularniejsze w urządzeniach mobilnych, laptopach i serwerach. Rosnąca popularność czyni je interesującymi dla badaczy bezpieczeństwa. Specjaliści z tej branży często używają technik inżynierii wstecznej podczas badania plików binarnych. W tym celu konieczne jest zapoznanie się z poleceniami asemblera ARM. Książkę szczególnie docenią analitycy bezpieczeństwa, którzy chcą się zapoznać z zestawem poleceń ARM i zdobyć wiedzę umożliwiającą im efektywne korzystanie z technik inżynierii wstecznej. Poza zestawem potrzebnych poleceń znalazło się w niej mnóstwo przydatnych informacji. Znajdziesz tu przegląd podstawowych zagadnień związanych z systemem operacyjnym, wyjaśnienie, czym są polecenia asemblera i na czym polega proces kompilacji pliku, a także opis mechanizmów działania poleceń służących do przetwarzania danych, dostępu do pamięci i kontroli przepływu sterowania. W kolejnych rozdziałach zapoznasz się z przeglądem technik inżynierii wstecznej, takich jak analiza statyczna i dynamiczna, jak również z kompleksowym omówieniem złośliwego oprogramowania, które może ją utrudniać. W książce: wprowadzenie do architektury ARM zestawy poleceń: A64, A32 i T32, a także format plików ELF przegląd wzorców przepływu sterowania w procesorach ARM narzędzia inżynierii wstecznej proces dezasemblowania i debugowania plików binarnych ARM w systemie Linux typowe narzędzia do dezasemblowania i debugowania plików binarnych ARM Poznaj moc inżynierii wstecznej! Spis treści: Spis treściO autorce Podziękowania Wprowadzenie Część I. Asembler procesora Arm Rozdział 1. Wprowadzenie do inżynierii wstecznej Wprowadzenie do asemblera Bity i bajty Kodowanie znaków Kod maszynowy i asembler Asemblacja Języki wysokiego poziomu Dezasemblacja Dekompilacja Rozdział 2. Właściwości formatu plików ELF Struktura programu Języki wysokiego poziomu a języki niskiego poziomu Proces kompilacji Kompilacja pod kątem różnych architektur Asemblacja i linkowanie Struktura pliku ELF Nagłówek pliku ELF Pola informacyjne nagłówka pliku ELF Pola platformy docelowej Pole punktu wejściowego Pola lokalizacji tabel Nagłówki programu ELF Nagłówek programu PHDR Nagłówek programu INTERP Nagłówki programu LOAD Nagłówek programu DYNAMIC Nagłówek programu NOTE Nagłówek programu TLS Nagłówek programu GNU_EH_FRAME Nagłówek programu GNU_STACK Nagłówek programu GNU_RELRO Nagłówki sekcji pliku ELF Metasekcje pliku ELF Główne sekcje pliku ELF Symbole Sekcja dynamiczna i ładowanie dynamiczne Ładowanie zależności (NEEDED) Relokacje programu Sekcje inicjalizacji i terminacji programu Pamięć lokalna wątków Model dostępu local-exec Model dostępu TLS initial-exec Model dostępu TLS general-dynamic Model dostępu TLS local-dynamic Rozdział 3. Podstawy systemu operacyjnego Ogólna architektura systemu operacyjnego Tryb użytkownika a tryb jądra Procesy Wywołania systemowe Wątki Zarządzanie pamięcią procesu Strony pamięci Zabezpieczenia pamięci Pamięć anonimowa i mapowana Randomizacja układu przestrzeni adresowej Implementacje stosu Pamięć współdzielona Rozdział 4. Architektura Arm Architektury i profile Architektura Armv8-A Poziomy wyjątków Stany wykonywania Armv8-A Stan wykonywania AArch64 Zestaw rozkazów A64 Rejestry AArch64 PSTATE Stan wykonywania AArch32 Zestawy rozkazów A32 i T32 Rejestry AArch32 Rejestr bieżącego stanu programu Rejestry stanu wykonywania Rozdział 5. Rozkazy przetwarzania danych Operacje przesunięcia i obrotu Przesunięcie logiczne w lewo Przesunięcie logiczne w prawo Przesunięcie arytmetyczne w prawo Obrót w prawo Obrót w prawo z przeniesieniem Formy rozkazów Operacje manipulacji bitami Operacje logiczne Binarna operacja AND Binarna operacja OR Binarna operacja OR wykluczającego Operacje arytmetyczne Dodawanie i odejmowanie Porównywanie Operacje mnożenia Operacje mnożenia w zestawie A64 Operacje mnożenia w zestawach A32/T32 Operacje dzielenia Operacje przeniesienia Przeniesienie stałej wartości bezpośredniej Przeniesienie rejestru Przeniesienie z negacją Rozdział 6. Rozkazy dostępu do pamięci Podstawowe informacje Tryby adresowania i formy offsetu Adresowanie z offsetem Tryb preindeksowany Adresowanie postindeksowane Adresowanie literałowe (względem PC) Rozkazy ładowania i zapisu Ładowanie i zapis słów i podwójnych słów Ładowanie i zapis półsłów lub bajtów Ładowanie i zapis wielu wartości (A32) Ładowanie i zapis par (A64) Rozdział 7. Wykonywanie warunkowe Wykonywanie warunkowe - informacje ogólne Kody warunkowe Flagi warunkowe NZCV Kody warunkowe Rozkazy warunkowe Rozkaz IT w Thumb Rozkazy ustawiające flagi Przyrostek rozkazu S Rozkazy testowania i porównywania Rozkazy wyboru warunkowego Rozkazy porównywania warunkowego Operacje warunkowe z logicznym AND i rozkazem CCMP Operacje warunkowe z logicznym OR i rozkazem CCMP Rozdział 8. Kontrola przepływu sterowania Rozkazy rozgałęziające Rozgałęzienia warunkowe i pętle Rozgałęzienia z testem i porównaniem Rozgałęzienia tabelowe Rozgałęzienie i zamiana Rozgałęzienia do podprocedur Funkcje i podprocedury Standard wywoływania procedur Rejestry ulotne i nieulotne Argumenty i wartości zwrotne Przekazywanie większych wartości Funkcje liście i funkcje niebędące liśćmi Część II. Inżynieria wsteczna Rozdział 9. Środowiska Arm Płytki Arm Emulator QEMU Emulacja w trybie użytkownika QEMU Pełna emulacja systemu w QEMU Rozdział 10. Analiza statyczna Narzędzia do analizy statycznej Narzędzia wiersza poleceń Dezasemblery i dekompilatory Binary Ninja Cloud Przykład analizy wywołania przez referencję Analiza przepływu sterowania Funkcja main Podprocedura Konwersja na char Instrukcja if Dzielenie współczynnika Pętla for Analiza algorytmu Rozdział 11. Analiza dynamiczna Debugowanie w wierszu poleceń Polecenia GDB Konfiguracja GDB Rozszerzenie GEF debugera GDB Radare2 Debugowanie zdalne Radare2 IDA Pro Debugowanie błędu pamięci Debugowanie procesu w GDB Rozdział 12. Inżynieria wsteczna programów arm64 w systemie macOS Podstawowe informacje Pliki binarne arm64 dla systemu macOS Program powitalny dla systemu macOS (arm64) Polowanie na złośliwe pliki binarne arm64 Analiza złośliwego oprogramowania arm64 Techniki utrudniające analizę Logika utrudniająca debugowanie (przez ptrace) Logika utrudniająca debugowanie (przez sysctl) Zabezpieczenie przed maszynami wirtualnymi (stan SIP i wykrywanie artefaktów maszyny wirtualnej) Podsumowanie Skorowidz O autorze: Maria Markstedter zajmuje się inżynierią wsteczną i podatnościami architektury ARM. Wcześniej prowadziła testy penetracyjne i badała zagrożenia cyberbezpieczeństwa W 2020 roku magazyn „Forbes” przyznał jej tytuł Człowieka Roku w branży cyberbezpieczeństwa. Należy do komisji europejskiej edycji konferencji Black Hat®.

Specyfikacja

Podstawowe informacje

Autor
  • Maria Azeria Markstedter
Wybrane wydawnictwa
  • Helion
Okładka
  • Miękka
Rok wydania
  • 2024
Ilość stron
  • 408
Tematyka
  • Hacking
  • Programowanie
ISBN
  • 9788328906754