Reverse Engineering (5 cr)
Code: TTC6510-3002
General information
Enrollment
01.08.2023 - 24.08.2023
Timing
28.08.2023 - 27.10.2023
Number of ECTS credits allocated
5 op
Mode of delivery
Face-to-face
Unit
School of Technology
Campus
Lutakko Campus
Teaching languages
- English
Seats
0 - 35
Degree programmes
- Bachelor's Degree Programme in Information and Communications Technology
- Bachelor's Degree Programme in Information and Communications Technology
Teachers
- Joonatan Ovaska
Groups
-
TTV21S3Tieto- ja viestintätekniikka (AMK)
-
TTV21S5Tieto- ja viestintätekniikka (AMK)
-
TIC21S1Bachelor's Degree Programme in Information and Communications Technology
-
TTV21S2Tieto- ja viestintätekniikka (AMK)
-
TTV21S1Tieto- ja viestintätekniikka (AMK)
Objectives
The student is aware of the methods to analyze and reverse engineer applications. After successfully passing this course, the student is able to perform simple reverse engineering tasks on X86 Windows and Linux binaries. The student understands the differences between static and dynamic analysis. The student is able to perform basic dynamic analysis tasks. The student understands the structure of PE binary files and how they can be analyzed using existing, widely available tools. The student learns how to document his/her findings in a report format that is understandable to a person with similar skills in reverse engineering
Competences
EUR-ACE: Knowledge and understanding
EUR-ACE: Engineering practice
EUR-ACE: Multidisciplinary competences
Content
The course covers methodologies to analyze and reverse engineer binary files and applications using static and dynamic analysis. The course includes labs where the covered topics are put into practice.
Learning materials and recommended literature
Materials in the e-learning environment and the book: Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software
Teaching methods
- lectures
- independent study
- distance learning
- webinars
- exercises
- learning tasks
- book
Exam dates and retake possibilities
No exam, assessment is based on assignments.
Alternative completion methods
The admission procedures are described in the degree rule and the study guide. The teacher of the course will give you more information on possible specific course practices.
Student workload
One credit (1 Cr) corresponds to an average of 27 hours of work.
- lectures 10 h
- demos and walkthroughs 10 h
- assignment 56 h
- independent study 41 h
- reading and weekly quiz 18 h
Total 135 h
Further information for students
Points from the quizzes and from the lab reports. No exam
Evaluation scale
0-5
Evaluation criteria, satisfactory (1-2)
Sufficient (1): The student is familiar with the basic topics discussed during the course. The student is able to perform the most basic analysis on the simplest of X86 binaries using only some of the tools covered in the course with assistance.
Satisfactory (2): The student understands the most basic topics discussed during the course, however, he/she struggles to utilize this knowledge. The student is not able to search for relevant information independently. The student is able to analyze simple X86 binaries using the tools and techniques covered in the course with assistance.
Evaluation criteria, good (3-4)
Good (3): The student understands the most important topics discussed during the course and is able to utilize this knowledge in the most basic cases. The student is able to utilize information about the discussed topics. The student is able to analyze basic X86 binaries using the tools and techniques covered in the course.
Very good (4): The student understands the most important topics discussed during the course and is able to utilize this knowledge in most common cases. The student is able to search and understand information about discussed topics. The student is able to analyze basic X86 binaries independently using tools covered in the course.
Evaluation criteria, excellent (5)
Excellent (5): The student understands all topics discussed during the course and is able to use them in an innovative manner even in challenging situations. The student is able to search and utilize information about discussed topics independently. The student is able to analyze basic X86 binaries independently using tools covered in the course and utilize widely available tools not covered in the course.
Prerequisites
Basics in Programming, Operating systems, Data structures and algorithms