Logo ČVUT
Loading...
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2011/2012

Strojově orientované jazyky

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah
X36SOJ KZ 4 2+2c
Předmět je náhradou za:
Strojově orientované jazyky (36SOJ)
Přednášející:
Pavel Cimbál
Cvičící:
Pavel Cimbál
Předmět zajišťuje:
katedra počítačů
Anotace:

V předmětu posluchači získají (na příkladu nejrozšířenější platformy - PC) znalosti ohledně tvorby programů v assembleru, s důrazem na optimální využití funkce mikroprocesoru a efektivní řešení spolupráce SW a HW na nejnižší úrovni. Poté budou probrány základy koncepce majoritních OS z pohledu jádra, kódu aplikace i vazby k vyšším jazykům, které budou dále využity při reverzní analýze, optimalizacích a posuzování bezpečnosti kódu.

Požadavky:

http://service.felk.cvut.cz/courses/X36SOJ/

prezence na cvičeních,napsaný test, minimálně 8 bodů z testu a obhajob. , minimálně 10 bodů ze sestrálních prací.

Osnova přednášek:

1. Úvod, zaměření a požadavky předmětu. Historie x86, vývoj uspořádání PC.

2. Procesor i8086. Instrukční soubor, reálný režim.

3. Softwarová přerušení. Služby BIOSu a DOSu.

4. Přímý přístup k HW. Hardwarová přerušení, základní periferie.

5. Procesor i80386. Chráněný režim, ochrana paměti, stránkování.

6. Optimalizace kódu. Ladění na velikost, rychlost, refaktorizace.

7. Koncepce linuxového jádra. Zavádění, virtualizace paměti, správa procesů.

8. Koncepce jádra Windows. Virtualizace paměti, HAL, správa procesů.

9. Prostředí aplikace. Uživatelský prostor, spustitelné soubory, relokovatelné knihovny.

10. Vazba na vyšší jazyky. Volací konvence, externí moduly, reverzní analýza.

11. Bezpečnost aplikací a jádra. Havárie kódu, druhy útoků, zapouzdření kódu.

12. Moduly jádra a ovladače. Anatomie modulu, zavedení do jádra, ukrývací techniky.

13. Nestandardní režimy procesoru. Nepublikované instrukce, virtualizace.

Osnova cvičení:

1. Základní instrukce, použití registrů, vztah strojového kódu k syntaxi assembleru.

2. Větvení, podprogramy, instrukce IN a OUT, interakce s uživatelem.

3. Použití vvbraných služeb BIOSu a DOSu, formáty COM a EXE, alokace paměti.

4. Obsluha přerušení, manipulace s vektory, kontext a reentrance, práce s řadičem.

5. Přechod z/do chráněného režimu, vytvoření a spuštění 32 bitového kódu.

6. Optimalizační úlohy pro 16/32 bitový kód, pipeline, základy optimalizačních triků.

7. Analýza setupu, fáze zavedení kernelu, rozbor klíčové části jádra, (ne)známé chyby.

8. Rozbor klíčových částí jádra Windows, proces zavádění, anatomie aplikace.

9. Konvence volání jádra, vytváření jednoduché int 80h aplikace, signály, minimalizace.

10. In-line asembler, direktivy, symboly a constraints, vliv HLL optimalizace.

11. Konstrukce root-shellcode, eskalace práv, využití bezpečnostních chyb, ukrytí.

12. Analýza ovladačů jádra, konstrukce jednoduchého ovladače.

13. Použití nepublikovaných instrukcí, utajování kódu, základy polymorfismu.

Cíle studia:
Studijní materiály:

Slavík,P.: Strojově orientované jazyky, ČVUT, 1996

Poznámka:

http://service.felk.cvut.cz/courses/X36SOJ/

Rozvrh na zimní semestr 2011/2012:
Rozvrh není připraven
Rozvrh na letní semestr 2011/2012:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
St
Čt
místnost T2:A4-204
Cimbál P.
07:30–09:00
(přednášková par. 1)
Dejvice
Učebna
místnost T2:H1-131
Cimbál P.
09:15–10:45
(přednášková par. 1
paralelka 101)

Dejvice haly
AlgDejvice

Předmět je součástí následujících studijních plánů:
Platnost dat k 9. 7. 2012
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet11450904.html