Helion


Szczegóły kursu video

Poradnik hakera. Kurs video. Inżynieria odwrotna i modyfikacja programów komputerowych

Poradnik hakera. Kurs video. Inżynieria odwrotna i modyfikacja programów komputerowych

Obierz kurs na... odkrycie źródeł kodu

Inżynieria odwrotna, zwana też wsteczną lub programowaniem zwrotnym, bazuje na procesie badania produktu - sprzętu lub oprogramowania - by ustalić, jak został on stworzony i jak działa. W przypadku oprogramowania narzędzia i techniki inżynierii odwrotnej pozwalają odwrócić proces myślowy autora programu komputerowego. Poznawszy proces, można na przykład ulepszyć program poprzez poprawienie błędów w kodzie napisanym przez poprzednika, ale równie dobrze inżynieria wsteczna może służyć do łamania kodu oprogramowania po to, by się nim zainspirować i skonstruować własny odpowiednik. Znajomość zasad inżynierii odwrotnej otwiera przed programistą nowe horyzonty. Poszukuje się specjalistów w tym zakresie, ponieważ jednak zagadnienie jest trudne, wciąż ich brakuje. Inżynieria wsteczna bowiem jest podstawowym wektorem ataku na aplikacje chronione przez różnego rodzaju systemy zabezpieczające - każda szanująca się firma tworząca oprogramowanie, które wymaga szczególnej ochrony, powinna zatrudniać eksperta do spraw wstecznego programowania, "bodyguarda" kodu. Z procesów inżynierii odwrotnej pochodzi wiele sterowników linuksowych - przede wszystkim sterowniki kart sieciowych - stąd znajomość jej zasad przydaje się osobom pracującym nad udoskonaleniami tego systemu. Techniki zwrotnego programowania powszechnie przeprowadza się także w procesie portowania gier wideo na nowsze platformy, więc programista potrafiący programować zwrotnie ma spore szanse na znalezienie pracy w firmie produkującej gry.

Co Cię czeka podczas naszego profesjonalnego szkolenia?

W trakcie tego kursu video:

  • Opanujesz zagadnienia dotyczące działania plików wykonywanych na Windowsie.
  • Nauczysz się podstaw assemblera.
  • Dowiesz się, jak obsługiwać programy wyspecjalizowane w pracy na plikach wykonywalnych.
  • Poznasz możliwości, jakie daje analiza kodu.

Co więcej...

  • Ukończywszy nasze szkolenie, będziesz znać podstawowe mnemoniki assemblera, bazowe sposoby manipulacji oprogramowaniem i rozmaite sztuczki, ułatwiające "zaglądanie" do kodu.

Poradnik hakera. Kurs video. Wstęp do inżynierii odwrotnej i modyfikowania programów komputerowych dostarczy Ci bardzo dużo wiedzy, a jednak kończy się na poziomie podstawowym, ponieważ zagadnienie inżynierii odwrotnej jest tak szerokie, że wymaga wielu godzin nauki. Nasze szkolenie stanowi świetny wstęp do dalszych, samodzielnych studiów tematu.

Tu liczy się człowiek

Inżynieria odwrotna to zagadnienie trudne. Specjalista w dziedzinie programowania zwrotnego musi nie tylko znać świetnie języki programowania i jego zasady, ale także - w pewnym sensie - działać niczym policyjny profiler: wczuć się w drugiego człowieka. Developera, który pisał dany kod. Musi zrozumieć jego sposób myślenia, ulubione ścieżki pracy, metodę, jaką wykorzystał do implementacji jakiegoś systemu czy też jego składnika. W procesie analizy programów specjalista skupia się na zrozumieniu logiki, jaką zaimplementował oryginalny programista. Często są to proste algorytmy, ale zdarzają się także oczywiście całe systemy o znacznym stopniu komplikacji. Nie powinno to jednak przerażać - krok po kroku można rozbroić nawet najtrudniejszy algorytm.

  • 1. Wstęp
    • 1.1. O kursie00:01:08
    • 1.2. Architektury procesorów00:04:56
    • 1.3. Pliki wykonywalne - co się dzieje z kodem źródłowym?00:08:25
    • 1.4. Kod maszynowy, IL i skrypty00:04:46
    • 1.5. Badanie PE00:08:55
    • 1.6. Interfejs i obsługa hex edytora HxD00:06:02
  • 2. Przyspieszony kurs assemblera
    • 2.1. Rejestry procesora x8600:04:51
    • 2.2. Kopiowanie i modyfikowanie pamięci00:07:50
    • 2.3. Operacje arytmetyczne00:09:02
    • 2.4. Stos00:05:46
    • 2.5. Wykonywanie funkcji, przeskakiwanie między kodem00:05:26
    • 2.6. Instrukcje warunkowe00:07:51
  • 3. Przygotowanie i dezasemblacja pierwszego programu
    • 3.1. Przygotowanie przykładowego prostego programu w języku C i jego deasemblacja w Visual Studio00:25:50
    • 3.2. Interfejs i obsługa deasemblera Ghidra - dezasemblacja programu00:15:42
    • 3.3. Interfejs i obsługa x64dbg - dezasemblacja programu00:15:11
    • 3.4. Analiza statyczna i dynamiczna - różnice00:03:47
  • 4. Analiza i modyfikowanie programów x86
    • 4.1. Dezasemblacja prostego kalkulatora00:14:30
    • 4.2. Wyciąganie klucza z prostego programu zabezpieczonego hasłem00:20:30
    • 4.3. Analiza programu odczytującego dane - pisanie dokumentacji pliku binarnego w oparciu o dezasemblacje - użycie Process Monitor00:16:20
    • 4.4. Interfejs i obsługa Cheat Engine - manipulacja pamięcią w prostej grze wideo00:06:30
    • 4.5. Manipulowanie kodem w czasie rzeczywistym00:16:05
    • 4.6. Wstrzykiwanie kodu - pisanie fragmentu kodu w assemblerze00:07:55
    • 4.7. Programowanie biblioteki DLL modyfikującej kod i wstrzyknięcie jej do procesu00:12:05
  • 5. Analiza i modyfikowanie programów IL (C#, VisualBasic, .NET, Managed C++)
    • 5.1. Przygotowanie przykładowego programu w C#00:06:01
    • 5.2. Interfejs i obsługa ILSpy - Dekompilacja kodu IL00:06:06
  • 6. Podsumowanie
    • 6.1. Podsumowanie00:01:52

  • Tytuł: Poradnik hakera. Kurs video. Inżynieria odwrotna i modyfikacja programów komputerowych
  • Autor: Marcin Gomulak
  • Ilość rozdziałów: 6
  • Ilość lekcji: 26
  • Czas trwania: 04:03:22
  • ISBN: 978-83-283-7038-8, 9788328370388
  • Identyfikator pozycji: vpohak
  • Wydawca: Videopoint