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

Reverzní inženýrství

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
NI-REV Z,ZK 5 1P+2C česky
Přednášející:
Cvičící:
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:

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/MI-REV/
Pro tento předmět se rozvrh nepřipravuje
Předmět je součástí následujících studijních plánů:
Platnost dat k 15. 7. 2020
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet6114106.html