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

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
MI-REV.16 Z,ZK 5 1+2 česky
Přednášející:
Josef Kokeš (gar.)
Cvičící:
Josef Kokeš (gar.)
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 nihovnami třetích stran. Další část předmětu bude věnována reverzními inženýrství 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ů.

V závěru přednášek se bude předmět zabývat komprimací a dekomprimací kódu a rekonstrukcí spustitelného souboru. 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:
Osnova přednášek:

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

2. Analýza běhu 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. Úvod do reverzního inženýrství

2. Úvod do assembleru procesorů Intel

3. Ladění programu, základní rozbor funkce a rámce zásobníku

4. Struktura PE souboru, Import Address Table

5. Rozbor programu, dostupné nástroje

6. Analýza programu s obfuskací

7. Konzultace

8. Analýza typové informace

9. Základy obfuskace kódu

10. Rekonstrukce zabalených binárních souborů

11. Pokročilá ochrana kódu

12. Injektování kódu

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

Cíle studia:

Studenti budou v rámci předmětu seznámeni se základy reverzního inženýrství a metodami, které se při něm používají. Po seznámení se s architekturou spustitelných souborů se studenti dozví, jakým způsobem probíhá proces ladění aplikací a jakými metodami probíhá převod ze strojového kódu do jazyka symbolických instrukcí ? assembleru. Část bude také věnována packerům, obfuskaci a dalším metodám, které se používají pro ochranu spustitelného kódu. Studenti dále pochopí, jakým způsobem se překládají jazyky typu C#, java a skripty do spustitelné podoby. Další část přednášek bude věnována identifikaci překladačů a volacích konvencí ze vzorků kódu a analýzám škodlivého kódu ? malwaru. Studenti porozumí, jakou roli v dnešní době reverzní inženýrství hraje a jak ho sami mohou použít při návrhu svých vlastních softwarových produktů a analýzách, které budou provádět. Důraz předmětu je kladen na cvičení, na kterých budou studenti řešit prakticky orientované úkoly z reálného světa.

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://moodle.fit.cvut.cz/courses/MI-REV.16/

Další informace:
https://moodle.fit.cvut.cz/courses/MI-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 TH:A-s135
Kokeš J.
12:45–14:15
SUDÝ TÝDEN

(přednášková par. 1)
Thákurova 7 (FSv-budova A)
As135
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.
16:15–17:45
(přednášková par. 1
paralelka 103)

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 25. 3. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet4672306.html