Binární programování (C9)
Kurz se zam??uje zejména na práci s binárními daty – na binární soubory, jejich formáty (popis a knihovny na práci s nimi) a komunikaci na binární úrovni. Kurz za?íná popisem fází p?ekladu. Následuje vysv?tlení a vytvo?ení parseru a interpretu jednoduchého jazyka. Poté se cvi?ení v?nuje binárním souborovým formát?m (zejména práce s linker skripty a ELF, a.out a PE soubory – readelf, objdump) a linkerem. Setkáme se s jazykem C od základ?, tj. bez knihovny libc: pouze assembler, jádro a C kód. To zahrnuje zejména popis principu systémových volání na instruk?ní úrovni a použití n?kterých d?ležitých systémových volání.
| Der Kurs ist den Kategorien zugeordnet: |
Programování → C/C++ Ostatní |
Kursstufe: Fortgeschritten
Course duration: 3 days
Kursinhalt:
- Úvod do problematiky: nástroje git, gcc, objcopy, objdump
- Parsery: malá teorie okolo parser?, popis Antlr a jeho vstupní formát, akce a pravidla
- Binární objektové soubory: popis objektových soubor?, p?ehled jejich formát?, knihovna ibbfd a její použití
- ELF a libelf: ELF a jeho struktura, libelf, sekce, jejich obsah, programové hlavi?ky
- DWARF: ladicí informace, DWARF, libdw a libdwfl
- Linker skripty: použití, syntaxe, verzování knihoven
- C bez libc: systémová volání, volací konvence, data z jádra, virtuální systémová volání (vsyscall, vdso)
- Lad?ní funk?nosti: tracery strace, ltrace, systémové volání ptrace, valgrind, gdb, analýza coredump?
- Lad?ní výkonnosti: gcov, gprof, perf
- Komunikace s HW: I/O porty, mmap a PCI, knihovny pro komunikaci jako libusb, libpciaccess
Erforderliche Kenntnisse: Prerekvizitou je znalost jazyka C a látky probírané na kurzu Programování systému UNIX/LINUX (C3).
V cen? školení je tišt?ný materiálKurstermine:
Empfohlene vorhergehende und anschlieĂźende Kurse:
