Reverse Engineering & Binary Analysis Basics · Lekcja

Nowoczesne mechanizmy ograniczania exploitów i ich omijanie

Poznają Państwo zabezpieczenia oddzielające podatność od działającego exploita: ASLR, DEP/NX, canary stosu i CFG, a także najważniejsze idee ich omijania.

Lekcja 4 z 413 kroki

Nowoczesne mechanizmy ograniczania exploitów i ich omijanie to bezpłatna lekcja Reverse Engineering & Binary Analysis Basics na CoddyKit. To lekcja 4 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 Reverse Engineering & Binary Analysis Basics, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Reverse Engineering & Binary Analysis Basics zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Why Exploits Got Harder

You can identify binary vulnerabilities, fuzz for bugs, and understand exploit primitives. Modern systems add mitigations that turn an easy bug into a hard one.

Knowing these defenses tells you what a working exploit must overcome.

Data Execution Prevention (DEP/NX)

DEP (a.k.a. the NX bit) marks memory as non-executable. Code injected onto the stack will not run.

This killed classic 'shellcode on the stack' attacks and pushed exploiters toward code reuse.

Return-Oriented Programming

To bypass DEP, attackers reuse existing executable code. ROP chains together short instruction sequences (gadgets) ending in ret to perform arbitrary actions without injecting code.

; a gadget
pop rdi
ret
; chained: set rdi, then call a real function

Address Space Layout Randomization

ASLR randomizes where modules, stack, and heap load each run, so attackers cannot hardcode addresses.

Without a known address, both shellcode and ROP gadgets are hard to target.

Defeating ASLR with Leaks

ASLR is bypassed with an information leak: a bug that discloses a real runtime address. From one leaked pointer you compute the module base and locate your gadgets.

Many modern exploits are really 'leak then exploit' two-stage attacks.

Stack Canaries

A stack canary is a random value placed before the saved return address. A linear stack overflow overwrites it, and the function aborts on mismatch.

; epilogue check
mov rax, [rbp-8]
xor rax, fs:[0x28]
jne __stack_chk_fail

Bypassing Canaries

Canaries are defeated by:

  • Leaking the canary value, then writing it back unchanged
  • Overwriting structures that skip the check (e.g. a non-linear write)

This is why info leaks are so valuable.

Control-Flow Integrity

CFI and Windows' CFG validate indirect calls and returns against a set of legitimate targets, breaking many ROP chains.

Hardware features like Intel CET add a shadow stack to protect return addresses.

RELRO and Fortify

Other hardening you will encounter:

  • Full RELRO makes the GOT read-only, blocking GOT-overwrite tricks
  • FORTIFY_SOURCE adds bounds checks to common functions

Check which are enabled before planning an approach.

checksec --file=./target
# RELRO: Full   Canary: Yes   NX: Yes   PIE: Yes

The Mitigation Mindset

Exploit development is an enumerate-then-bypass process: list active mitigations, then find the bug or leak that neutralizes each. Strong defenses do not make exploitation impossible, only more demanding.

PIE and Position Independence

PIE (Position Independent Executable) lets ASLR randomize the main binary itself, not just libraries. Without PIE, the executable loads at a fixed base, giving attackers reliable gadget addresses.

checksec reporting 'PIE: No' is a meaningful weakness worth noting.

Quick Check

Which technique is specifically designed to bypass DEP/NX by reusing existing executable code instead of injecting new code?

Recap

You now map the modern defensive landscape:

  • DEP/NX blocks injected code; ROP reuses existing code
  • ASLR randomizes addresses; info leaks defeat it
  • Canaries, CFI/CFG, RELRO add further hurdles

Real exploitation means enumerating these and chaining bugs to bypass each.

Bezpłatny start

Ucz się Assembly dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
12
Lekcje
48

Często zadawane pytania

Czy lekcja „Nowoczesne mechanizmy ograniczania exploitów i ich omijanie” jest bezpłatna?

Tak — pełny tekst „Nowoczesne mechanizmy ograniczania exploitów i ich omijanie” 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 Reverse Engineering & Binary Analysis Basics, przejdź na CoddyKit PRO. Kurs Reverse Engineering & Binary Analysis Basics zawiera 4 lekcji w sumie.

Co nauczysz się w „Nowoczesne mechanizmy ograniczania exploitów i ich omijanie”?

Poznają Państwo zabezpieczenia oddzielające podatność od działającego exploita: ASLR, DEP/NX, canary stosu i CFG, a także najważniejsze idee ich omijania. Ćwiczysz Reverse Engineering & Binary Analysis Basics 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ąć Reverse Engineering & Binary Analysis Basics?

Nie wymagamy żadnego doświadczenia. Reverse Engineering & Binary Analysis Basics 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 4 z 4.

Ile czasu zajmuje lekcja „Nowoczesne mechanizmy ograniczania exploitów i ich omijanie”?

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 Reverse Engineering & Binary Analysis Basics?

Tak. Każda lekcja Reverse Engineering & Binary Analysis Basics 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. Identyfikowanie podatności w plikach binarnych
  2. Wprowadzenie do fuzzingu
  3. Przegląd prymitywów eksploatacji
  4. Nowoczesne mechanizmy ograniczania exploitów i ich omijanie
← Powrót do Reverse Engineering & Binary Analysis Basics