0Pricing
Ethical Hacking Academy · Lekcja

Podstawy dezasemblacji

Ghidra i IDA

Podstawy dezasemblacji to bezpłatna lekcja Ethical Hacking Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ethical Hacking Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.

Czym jest dezasemblacja?

Dezasemblacja przekształca kod maszynowy pliku binarnego z powrotem w czytelne dla człowieka instrukcje asemblera. Pozwala dokładnie odczytać, co wykona procesor.

Jest niezbędna, gdy kod źródłowy nie jest dostępny, co w przypadku malware'u jest regułą.

Dezasemblacja a dekompilacja

Dezasemblacja tworzy kod asemblera. Dekompilacja idzie dalej, odtwarzając przybliżony pseudokod na wysokim poziomie, przypominający język C.

Pseudokod czyta się szybciej, natomiast asembler jest precyzyjny. Analitycy używają obu metod, przełączając się między nimi w razie potrzeby.

Ghidra

Ghidra to bezpłatny pakiet narzędzi do inżynierii wstecznej o otwartym kodzie źródłowym, opracowany przez NSA. Wykonuje dezasemblację dla wielu architektur i zawiera zaawansowany dekompilator.

Połączenie ceny i możliwości sprawia, że dla większości analityków jest to podstawowe narzędzie na początek.

IDA Pro

IDA Pro to od dawna komercyjny standard, znany z potężnego deasemblera oraz dekompilatora dostępnego z wtyczką Hex-Rays.

IDA Free i inne narzędzia, takie jak Binary Ninja oraz radare2/Cutter, są popularnymi alternatywami.

Wczytywanie pliku binarnego

Importujesz próbkę do narzędzia, które automatycznie ją analizuje: identyfikuje funkcje, odwołania krzyżowe i ciągi znaków.

Narzędzie tworzy mapę programu, po której można się poruszać, zaczynając od punktu wejścia lub interesujących importów.

Czytanie asemblera

Instrukcje asemblera przenoszą dane i wykonują na nich operacje. Oto kilka typowych instrukcji x86:

  • mov: kopiowanie danych.
  • push / pop: operacje na stosie.
  • call / ret: wywołanie i powrót z funkcji.
  • cmp / jmp / je: porównywanie i rozgałęzianie.
mov eax, [ebp-4]
cmp eax, 0
je  short loc_401050

Odwołania krzyżowe

Odwołania krzyżowe (xrefs) pokazują, gdzie używana jest dana funkcja lub ciąg znaków. Znalezienie xrefs do podejrzanego API, takiego jak CreateRemoteThread, przenosi bezpośrednio do odpowiedniego kodu.

Dzięki temu możesz poruszać się po programie według zachowania, zamiast czytać go od początku do końca.

Śledzenie wywołań API

Zaimportowane wywołania Windows API ujawniają zamiary. Sekwencja VirtualAlloc, następnie WriteProcessMemory, a potem CreateRemoteThread to klasyczny ciąg wstrzykiwania do procesu.

Rozpoznawanie takich wzorców jest kluczowym elementem analizy wstecznej złośliwego oprogramowania.

Widok grafu

Dezasemblery udostępniają widok grafu przedstawiający podstawowe bloki i łączące je rozgałęzienia. Pozwala to zwizualizować przepływ sterowania funkcji, dzięki czemu łatwo śledzić pętle i instrukcje warunkowe.

W przypadku złożonej logiki jest to znacznie czytelniejsze niż liniowa lista instrukcji.

Połączenie z debugowaniem

Dezasemblacja statyczna dobrze współpracuje z debuggerem. Gdy kod jest zaciemniony lub samomodyfikujący się, można ustawić pułapki i wykonywać go krokowo w czasie działania, aby zobaczyć rzeczywiste instrukcje.

To połączenie z analizą dynamiczną ma kluczowe znaczenie w przypadku spakowanych próbek, którym poświęcona jest następna lekcja.

Zmiana nazw i dodawanie adnotacji

W miarę poznawania funkcji i zmiennych należy je przemianowywać oraz dodawać komentarze w dezasemblerze. Zamiana sub_401000 na decrypt_config znacznie ułatwia dalszą analizę.

To stopniowe opisywanie elementów pozwala analitykom krok po kroku odtwarzać pełną logikę próbki złośliwego oprogramowania.

Szybkie sprawdzenie

Proszę przypomnieć sobie różnicę między dwoma głównymi wynikami działania Ghidra.

Podsumowanie

Znają już Państwo podstawy dezasemblacji:

  • Dezasemblacja daje kod asemblera, a dekompilacja — pseudokod.
  • Ghidra (bezpłatna) i IDA Pro to główne narzędzia.
  • Do poruszania się po kodzie na podstawie zachowania należy używać odwołań krzyżowych oraz wzorców wywołań API, takich jak ciągi wstrzykiwania.
  • Widok grafu wizualizuje przepływ sterowania; w przypadku zaciemnionego kodu warto połączyć go z debuggerem.

W następnej części pokonają Państwo packery za pomocą rozpakowywania.

Często zadawane pytania

Czy lekcja „Podstawy dezasemblacji” jest bezpłatna?

Tak — pełny tekst „Podstawy dezasemblacji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ethical Hacking Academy, przejdź na CoddyKit PRO. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Podstawy dezasemblacji”?

Ghidra i IDA Ćwiczysz Ethical Hacking Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Ethical Hacking Academy?

Nie wymagamy żadnego doświadczenia. Ethical Hacking Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Podstawy dezasemblacji”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Ethical Hacking Academy?

Tak. Każda lekcja Ethical Hacking Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Analiza statyczna
  2. Analiza dynamiczna
  3. Podstawy dezasemblacji
  4. Rozpakowywanie
← Powrót do Ethical Hacking Academy