Detail předmětu
Analýza binárního kódu
Garant předmětu
Jazyk výuky
Zakončení
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
- Operační systémy (IOS)
- Programování na strojové úrovni (ISU)
Literatura referenční
- Ljubuncic, I.: Linux Kernel Crash Book, 2011.
Osnova přednášek
- 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.
- 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.
- Analýza obrazů systémové paměti po pádu systému, symboly DWARF, použití nástroje crash(8).
- Analýza obrazů systémové paměti po pádu systému, chyby typu Oops, příznaky jádra, sysrq.
- Správa procesů a paměti v jádře, task_struct, vmas, SLAB allocator.
- Zpracování přerušení, odkládání práce, spodní poloviny, softirqs, tasklets, pracovní fronty.
- Ž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í
- Dekompozice ELF souboru, dekódóvání jeho sekcí a jeho zpětný překlad do assembleru.
- Použití nástroje crash(1) v Linuxu.
- Analýza obrazu paměti systému Linux po jeho pádu na architektuře IA-32.
- Analýza obrazu paměti systému Linux po jeho pádu na architektuře AMD64.
- Trasování systému za běhu pomocí SystemTap a ftrace.
- Trasování a analýza uváznutí systému.