Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2018/2019

Reverse Engineering

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
MIE-REV.16 Z,ZK 5 1P+2C
Přednášející:
Josef Kokeš
Cvičící:
Josef Kokeš
Předmět zajišťuje:
katedra informační bezpečnosti
Anotace:

Studenti budou v rámci předmětu seznámeni se základy reverzního inženýrství počítačového softwaru. Dále studenti získají znalosti o tom, jakým způsobem probíhá spouštění a inicializace programu, co se odehrává před a po volání funkce main. Studenti také pochopí, jakým způsobem je organizován spustitelný soubor, jak se propojuje s Knihovnami třetích stran. Další část předmětu bude věnována reverznímu inženýrství aplikací napsaných v C++. Studenti se také seznámi s principy disassemblerů a obfuskačními metodami. Dále se předmět bude věnovat nástrojům pro ladění (debuggerům): jak ladící nástroje pracují, jak probíhá ladění a také se seznámí s metodami, které mohou být použity k detekci ladících nástrojů. Jedna z přednášek pohovoří o aktuální scéně počítačového škodlivého kódu. Důraz předmětu je kladen na cvičení, na kterých budou studenti řešit prakticky orientované úlohy z reálného světa.

Požadavky:

Velmi dobrá znalost C, C++. Základní znalost programování v assembleru/strojovém kódu.

Osnova přednášek:

1. Úvod do reverzního inženýrství

2. Analýza toku programu

3. Analýza tříd v C++

4. Disassembling a obfuskace

5. Rozpoznávání kompilátorů

6. Debugging a antidebugging

7. Malware

Osnova cvičení:

1. Seznámení s nástroji pro ladění, úvod do assembleru

2. Základní rozbor funkce a rámce zásobníku

3. Nástroje pro reverzní inženýrství

4. Struktura PE souboru, Import Address Table

5. Analýza typové informace

6. Analýza programu s jednoduchou obfuskací

7. Pokročilejší obfuskační techniky

8. Rekonstrukce zabalených souborů

9. Antidebugging

10. Injektování kódu

11. Reverzní analýza programů ve vyšších jazycích

Cíle studia:
Studijní materiály:

[1] Eilam, E.: Reversing: Secrets of Reverse Engineering. Wiley. 2005. 987-0-7645-7481-8.

[2] Eagle, C.: The IDA Pro Book: The unofficial Guide to the World's Most Popular Disassembler. No Starch Press. 2011. 987-1-59327-289-0.

[3] Seacord, R. C.: Secure Coding in C and C++. Software Engineering Institute, Carnegie Mellon University. 2013. 987-0-321-82213-0.

[4] Russinovich M. - Solomon D. A. - Ionescu A.: Windows Internals Part 1. Microsoft Press. 2012. 987-0-7356-4873-9.

[5] Russinovich M. - Solomon D. A. - Ionescu A.: Windows Internals Part 2. Microsoft Press. 2012. 987-0-7356-6587-3.

Poznámka:
Další informace:
https://moodle.fit.cvut.cz/courses/MIE-REV.16
Rozvrh na zimní semestr 2018/2019:
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 T9:351
Kokeš J.
11:00–12:30
SUDÝ TÝDEN

(přednášková par. 1)
Dejvice
NBFIT PC ucebna

místnost T9:345
Kokeš J.
18:00–19:30
(přednášková par. 1
paralelka 101)

Dejvice
NBFIT BOU ucebna
Rozvrh na letní semestr 2018/2019:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 21. 8. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet4703606.html