Detail předmětu

Analýza binárního kódu

IAN Ak. rok 2016/2017 letní semestr 4 kredity

Aktuální akademický rok

Garant předmětu

Jazyk výuky

česky, anglicky

Zakončení

klasifikovaný zápočet

Rozsah

  • 14 hod. přednášky
  • 12 hod. pc laboratoře
  • 13 hod. projekty

Bodové hodnocení

  • 40 bodů půlsemestrální test (písemná část)
  • 60 bodů projekty

Zajišťuje ústav

Doporučené prerekvizity

Literatura referenční

  • Ljubuncic, I.: Linux Kernel Crash Book, 2011.

Osnova přednášek

  1. Architektury počítačů, registry, implicitní a explicitní operace na zásobníku. Architektury x86 a x86_64. System V ABI na architektuře x86_64, červená zóna.
  2. Sestavení, linkování a spoušténí kódu. Příklady typických optimalizací při sestavování kódu, optimalizace na zásobníku. Porozumění Unixovým spustitelným souborům formátu ELF a objdump.
  3. Analýza obrazů systémové paměti po pádu systému, symboly DWARF, použití nástroje crash(8).
  4. Analýza obrazů systémové paměti po pádu systému, chyby typu Oops, příznaky jádra, sysrq.
  5. Správa procesů a paměti v jádře, task_struct, vmas, SLAB allocator.
  6. Zpracování přerušení, odkládání práce, spodní poloviny, softirqs, tasklets, pracovní fronty.
  7. Živé sledování jádra (SystemTap, ftrace), zámky, problém uváznutí a zamrznutí systému a jejich analýza a opakované vyvolání.

Osnova počítačových cvičení

  1. Dekompozice ELF souboru, dekódóvání jeho sekcí a jeho zpětný překlad do assembleru.
  2. Použití nástroje crash(1) v Linuxu.
  3. Analýza obrazu paměti systému Linux po jeho pádu na architektuře IA-32.
  4. Analýza obrazu paměti systému Linux po jeho pádu na architektuře AMD64.
  5. Trasování systému za běhu pomocí SystemTap a ftrace.
  6. Trasování a analýza uváznutí systému.
Nahoru