Reverse Engineering
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
NIE-REV | Z,ZK | 5 | 1P+2C | anglicky |
- 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:
-
Students will learn fundamentals of reverse engineering of computer software (methods of executing and initializing programs, organization of executable files, work with third-party libraries). Special attention will be paid to C ++. Students will also become familiar with the principles of debugging tools, disassemblers and obfuscation methods. Finally, the course will focus on code compression and decompression and executable file reconstruction.
- Požadavky:
-
Very good knowledge of C, C++. Basic knowledge of programming in assembler/machine code.
- Osnova přednášek:
-
1. Introduction to reverse engineering
2. Analysis of a program's flow
3. Analysis of C++ classes
4. Disassembling and obfuscation
5. Compiler recognition
6. Debugging and anti-debugging
7. Malware
- Osnova cvičení:
-
1. Introduction to debuggers and assembler
2. Basic function analysis, stack frame
3. Reverse engineering tools
4. PE file structure, Import Address Table
5. Type information analysis
6. Analysis of obfuscated programs
7. Advanced obfuscation techniques
8. Reconstruction of packed files
9. Antidebugging
10. Code injection
11. Reverse analysis of high level languages
- Cíle studia:
-
After he/she had completed the course, the student will be able to independently perform reverse analyses of binary executable files on the MS Windows platform, including analyzing obfuscated files (i.e. 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.
- 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 Pá - Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Master specialization Software Engineering, in English, 2021 (volitelný předmět)
- Master specialization Computer Security, in English, 2021 (PS)
- Master specialization Computer Systems and Networks, in English, 2021 (volitelný předmět)
- Master specialization Design and Programming of Embedded Systems, in English, 2021 (volitelný předmět)
- Master specialization Computer Science, in English, 2021 (VO)
- Master specialization Computer Science, in English, 2024 (VO)