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

Reverzní inženýrství

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
NI-REV Z,ZK 5 1P+2C česky
Garant předmětu:
Josef Kokeš
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ámí 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. Reverzní analýza 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. 64bitový kód

7. Injektování kódu

8. Analýza programu s jednoduchou obfuskací

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

10. Rekonstrukce zabalených souborů

11. Antidebugging

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

Cíle studia:

Po absolvování předmětu bude student schopen samostatně provádět reverzní analýzu binárních spustitelných souborů pro platformu MS Windows, a to i v případě obfuskovaných programů (typicky malware).

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:

Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/MI-REV/.

Tento předmět obsahově navazuje na bakalářský předmět Bezpečný kód.

Další informace:
https://courses.fit.cvut.cz/NI-REV/
Rozvrh na zimní semestr 2024/2025:
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 TH:A-s134
Kokeš J.
11:00–12:30
LICHÝ TÝDEN

(přednášková par. 1)
Thákurova 7 (budova FSv)
As134
místnost T9:345
Kokeš J.
14:30–16:00
(přednášková par. 1
paralelka 101)

Dejvice
NBFIT BOU ucebna
místnost T9:345
Kokeš J.
16:15–17:45
(přednášková par. 1
paralelka 102)

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

Dejvice
NBFIT BOU ucebna

Rozvrh na letní semestr 2024/2025:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 21. 11. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet6114106.html