TakaisinmallintaminenLaajuus (5 op)
Tunnus: TTC6510
Laajuus
5 op
Opetuskieli
- suomi
- englanti
Vastuuhenkilö
- Joonatan Ovaska
Osaamistavoitteet
Kurssin suoritettuaan opiskelija on tietoinen menetelmistä joilla voidaan takaisinmallintaa ohjelmia. Kurssin hyväksytysti suoritettuaan opiskelija pystyy takaisinmallintamaan yksinkertaisia x86 Windows ja Linux ohjelmia. Opiskelija ymmärtää dynaamisen ja staattisen analyysin erot. Opiskelija kykenee suorittamaan yksinkertaista dynaamista analyysiä. Opiskelija ymmärtää PE binääritiedostojen rakenteen ja kuinka niitä voidaan analysoida käyttäen olemassaolevia laajasti käytettyjä työkaluja. Opiskelija oppii dokumentoimaan löydöksensä raporttimuodossa, joka on ymmärrettävä henkilölle jolla on vastaavat taidot takaisinmallintamisesta.
Opintojakson osaamiset
EUR-ACE: Tieto ja ymmärrys
- Tieto ja ymmärrys oman erikoistumisalan perustana olevista insinööritieteistä tasolla, joka on tarpeen ohjelman muiden oppimistulosten saavuttamiseksi, mukaan lukien käsitys tulevaisuuden vaatimuksista omalla alalla.
- Tieto ja ymmärrys soveltuvista materiaaleista, laitteista, työvälineistä, teknologioista ja prosesseista sekä niiden rajoituksista omalla erikoistumisalalla.
- Tieto ja ymmärrys soveltuvista analyysi-, suunnittelu- ja tutkimus/kehittämistekniikoista ja -menetelmistä sekä niiden rajoituksista omalla erikoistumisalalla.
EUR-ACE: Tekniikan soveltaminen käytäntöön
- Kyky tunnistaa, muotoilla ja ratkaista monimutkaisia ongelmia kyeten valitsemaan ja omaten käytännön taidot soveltaa tilanteeseen soveltuvia, vakiintuneita analyyttisiä, laskennallisia ja kokeellisia tekniikoita ja menetelmiä.
- Kyky selvittää oman alan ammattikäytän-töä koskevat ohjeet ja turvallisuus-määräykset sekä soveltaa niitä.
EUR-ACE: Monialainen osaaminen
- Tietoisuus insinöörin ammattikäytännön yhteiskunnallisista, työsuojeluun ja ympäristöön liittyvistä, taloudellisista ja teollisista vaikutuksista sekä ymmärrys niiden asettamista rajoituksista.
Sisältö
Kurssilla käydään ohjelmien dynaamiseen ja staattiseen analyysiin sekä takaisinmallintamiseen käytettäviä menetelmiä. Kurssilla suoritetaan labratehtäviä, joissa opittuja asioita hyödynnetään.
Esitietovaatimukset
ohjelmoinnin perusteet, käyttöjärjetelmät, tietorakenteet ja algoritmit
Arviointikriteerit, tyydyttävä (1)
Välttävä (1): Opiskelija on tietoinen kurssilla käydyistä perusasioista. Opiskelija pystyy tekemään avustettuna vain yksinkertaista analyysiä x86 binääreille käyttäen joitain kurssilla opetettuja työkaluja.
Tyydyttävä (2): Opiskelija ymmärtää kurssilla käydyt perusasiat, mutta hän ei kykene hyödyntämään tätä tietoa. Opiskelija ei pysty etsimään aiheeseen liittyvää tietoa itsenäisesti. . Opiskelija pystyy tekemään avustettuna vain yksinkertaista analyysiä x86 binääreille käyttäen joitain kurssilla opetettuja työkaluja.
Arviointikriteerit, hyvä (3)
Hyvä (3): Opiskelija ymmärtää tärkeimmät aiheet kurssilta ja pystyy käyttämään tätä tietoa yksinkertaisimmissa tapauksissa. Opiskelija pystyy analysoimaan yksinkertaisia x86 binääreitä käyttämällä kurssilla opetettuja työkaluja ja menetelmiä.
Kiitettävä (4): Opiskelija ymmärtää tärkeimmät aiheet kurssilta ja pystyy käyttämään tätä tietoa yleisissä tapauksissa. Opiskelija pystyy etsimään ja ymmärtämään ja tietoa käsitellyistä aiheista. Opiskelija kykenee x86 binäärien itsenäiseen analyysin käyttäen kurssilla käytyjä työkaluja ja menetelmiä.
Arviointikriteerit, kiitettävä (5)
Erinomainen (5): Opiskelija ymmärtää kaikki kurssillakäydyt asiat ja kykenee hyödyntämään niitä innovatiivisesti myös haastavissa tapauksissa. Opiskelija kykenee etsimään ja hyödyntämään tietoa kurssilla käydyistä aiheista itsenäisesti. Opiskelija kykenee analysoimaan yksinkertaisia x86 ohjelmia itsenäisesti käyttäen kurssilla käytyjä työkaluja ja menetelmiä ja kykenee käyttämään laajasti käytettyjä työkaluja, joita ei käsitelty kurssilla.
Enrollment
18.11.2024 - 09.01.2025
Timing
13.01.2025 - 30.04.2025
Number of ECTS credits allocated
5 op
Virtual portion
5 op
Mode of delivery
Online learning
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
-
TTV22S5Tieto- ja viestintätekniikka (AMK)
-
TTV22S2Tieto- ja viestintätekniikka (AMK)
-
TTV22S3Tieto- ja viestintätekniikka (AMK)
-
TIC22S1Bachelor's Degree Programme in Information and Communications Technology
-
TTV22S1Tieto- ja viestintätekniikka (AMK)
-
TTV22SMTieto- ja viestintätekniikka (AMK)
-
TTV22S4Tieto- ja viestintätekniikka (AMK)
-
TTV22SM2Tieto- ja viestintätekniikka (AMK)
Objective
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.
Oppimateriaali ja suositeltava kirjallisuus
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 schedules
No exam, assessment is based on assignments.
Vaihtoehtoiset suoritustavat
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
- reading assignments 10 h
- independent study 45 h
- assignment solving 60 h
- assignment reporting 10h
Total 135 h
Content scheduling
We start by going through whole course theory, after all theory parts, we'll continue with hands-on assignments for the rest of the course.
Further information
Points from the quizzes and from the lab reports. No exam
Evaluation scale
0-5
Arviointikriteerit, tyydyttävä (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.
Arviointikriteerit, hyvä (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.
Assessment 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.
Qualifications
Basics in Programming, Operating systems, Data structures and algorithms
Enrollment
01.08.2024 - 22.08.2024
Timing
26.08.2024 - 18.12.2024
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
-
TTV22S5Tieto- ja viestintätekniikka (AMK)
-
TTV22S2Tieto- ja viestintätekniikka (AMK)
-
TTV22S3Tieto- ja viestintätekniikka (AMK)
-
TIC22S1Bachelor's Degree Programme in Information and Communications Technology
-
TTV22S1Tieto- ja viestintätekniikka (AMK)
-
TTV22S4Tieto- ja viestintätekniikka (AMK)
Objective
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.
Oppimateriaali ja suositeltava kirjallisuus
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 schedules
No exam, assessment is based on assignments.
Vaihtoehtoiset suoritustavat
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
- reading assignments 10 h
- independent study 45 h
- assignment solving 60 h
- assignment reporting 10h
Total 135 h
Content scheduling
We start by going through whole course theory, after all theory parts, we'll continue with hands-on assignments for the rest of the course.
Further information
Points from the quizzes and from the lab reports. No exam
Evaluation scale
0-5
Arviointikriteerit, tyydyttävä (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.
Arviointikriteerit, hyvä (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.
Assessment 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.
Qualifications
Basics in Programming, Operating systems, Data structures and algorithms
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)
Objective
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.
Oppimateriaali ja suositeltava kirjallisuus
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 schedules
No exam, assessment is based on assignments.
Vaihtoehtoiset suoritustavat
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
Points from the quizzes and from the lab reports. No exam
Evaluation scale
0-5
Arviointikriteerit, tyydyttävä (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.
Arviointikriteerit, hyvä (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.
Assessment 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.
Qualifications
Basics in Programming, Operating systems, Data structures and algorithms
Ilmoittautumisaika
01.08.2022 - 25.08.2022
Ajoitus
29.08.2022 - 27.10.2022
Opintopistemäärä
5 op
Toteutustapa
Lähiopetus
Yksikkö
Teknologiayksikkö
Toimipiste
Lutakon kampus
Opetuskielet
- Suomi
Paikat
0 - 35
Koulutus
- Tieto- ja viestintätekniikka (AMK)
Opettaja
- Joonatan Ovaska
Tavoitteet
Kurssin suoritettuaan opiskelija on tietoinen menetelmistä joilla voidaan takaisinmallintaa ohjelmia. Kurssin hyväksytysti suoritettuaan opiskelija pystyy takaisinmallintamaan yksinkertaisia x86 Windows ja Linux ohjelmia. Opiskelija ymmärtää dynaamisen ja staattisen analyysin erot. Opiskelija kykenee suorittamaan yksinkertaista dynaamista analyysiä. Opiskelija ymmärtää PE binääritiedostojen rakenteen ja kuinka niitä voidaan analysoida käyttäen olemassaolevia laajasti käytettyjä työkaluja. Opiskelija oppii dokumentoimaan löydöksensä raporttimuodossa, joka on ymmärrettävä henkilölle jolla on vastaavat taidot takaisinmallintamisesta.
Opintojakson osaamiset
EUR-ACE: Tieto ja ymmärrys
- Tieto ja ymmärrys oman erikoistumisalan perustana olevista insinööritieteistä tasolla, joka on tarpeen ohjelman muiden oppimistulosten saavuttamiseksi, mukaan lukien käsitys tulevaisuuden vaatimuksista omalla alalla.
- Tieto ja ymmärrys soveltuvista materiaaleista, laitteista, työvälineistä, teknologioista ja prosesseista sekä niiden rajoituksista omalla erikoistumisalalla.
- Tieto ja ymmärrys soveltuvista analyysi-, suunnittelu- ja tutkimus/kehittämistekniikoista ja -menetelmistä sekä niiden rajoituksista omalla erikoistumisalalla.
EUR-ACE: Tekniikan soveltaminen käytäntöön
- Kyky tunnistaa, muotoilla ja ratkaista monimutkaisia ongelmia kyeten valitsemaan ja omaten käytännön taidot soveltaa tilanteeseen soveltuvia, vakiintuneita analyyttisiä, laskennallisia ja kokeellisia tekniikoita ja menetelmiä.
- Kyky selvittää oman alan ammattikäytän-töä koskevat ohjeet ja turvallisuus-määräykset sekä soveltaa niitä.
EUR-ACE: Monialainen osaaminen
- Tietoisuus insinöörin ammattikäytännön yhteiskunnallisista, työsuojeluun ja ympäristöön liittyvistä, taloudellisista ja teollisista vaikutuksista sekä ymmärrys niiden asettamista rajoituksista.
Sisältö
Kurssilla käydään ohjelmien dynaamiseen ja staattiseen analyysiin sekä takaisinmallintamiseen käytettäviä menetelmiä. Kurssilla suoritetaan labratehtäviä, joissa opittuja asioita hyödynnetään.
Oppimateriaali ja suositeltava kirjallisuus
Verkko-oppimisympäristössä julkaistava sähköinen materiaali, sekä kirja: Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software
Opetusmenetelmät
- luennot
- itseopiskelu
- verkko-opinnot
- webinaarit
- harjoitustyöt
- oppimistehtävät
- kirja
Tenttien ajankohdat ja uusintamahdollisuudet
Ei tenttiä, arviointi perustuu tehtävä suorituksiin.
Vaihtoehtoiset suoritustavat
Hyväksilukemisen menettelytavat kuvataan tutkintosäännössä ja opinto-oppaassa. Opintojakson opettaja antaa lisätietoa mahdollisista opintojakson erityiskäytänteistä.
Opiskelijan ajankäyttö ja kuormitus
Yksi opintopiste (1 op) tarkoittaa keskimäärin 27 tunnin työtä.
- luennot 8 h
- harjoitustyöt 60 h
- itsenäinen työskentely 51 h
- lukeminen ja viikottaiset kyselyt 16 h
Yhteensä 135 h
Lisätietoja opiskelijoille
Pisteitä viikottaisista kyselyistä ja tehtävistä. Ei tenttiä.
Arviointiasteikko
0-5
Arviointikriteerit, tyydyttävä (1-2)
Välttävä (1): Opiskelija on tietoinen kurssilla käydyistä perusasioista. Opiskelija pystyy tekemään avustettuna vain yksinkertaista analyysiä x86 binääreille käyttäen joitain kurssilla opetettuja työkaluja.
Tyydyttävä (2): Opiskelija ymmärtää kurssilla käydyt perusasiat, mutta hän ei kykene hyödyntämään tätä tietoa. Opiskelija ei pysty etsimään aiheeseen liittyvää tietoa itsenäisesti. . Opiskelija pystyy tekemään avustettuna vain yksinkertaista analyysiä x86 binääreille käyttäen joitain kurssilla opetettuja työkaluja.
Arviointikriteerit, hyvä (3-4)
Hyvä (3): Opiskelija ymmärtää tärkeimmät aiheet kurssilta ja pystyy käyttämään tätä tietoa yksinkertaisimmissa tapauksissa. Opiskelija pystyy analysoimaan yksinkertaisia x86 binääreitä käyttämällä kurssilla opetettuja työkaluja ja menetelmiä.
Kiitettävä (4): Opiskelija ymmärtää tärkeimmät aiheet kurssilta ja pystyy käyttämään tätä tietoa yleisissä tapauksissa. Opiskelija pystyy etsimään ja ymmärtämään ja tietoa käsitellyistä aiheista. Opiskelija kykenee x86 binäärien itsenäiseen analyysin käyttäen kurssilla käytyjä työkaluja ja menetelmiä.
Arviointikriteerit, kiitettävä (5)
Erinomainen (5): Opiskelija ymmärtää kaikki kurssillakäydyt asiat ja kykenee hyödyntämään niitä innovatiivisesti myös haastavissa tapauksissa. Opiskelija kykenee etsimään ja hyödyntämään tietoa kurssilla käydyistä aiheista itsenäisesti. Opiskelija kykenee analysoimaan yksinkertaisia x86 ohjelmia itsenäisesti käyttäen kurssilla käytyjä työkaluja ja menetelmiä ja kykenee käyttämään laajasti käytettyjä työkaluja, joita ei käsitelty kurssilla.
Esitietovaatimukset
ohjelmoinnin perusteet, käyttöjärjetelmät, tietorakenteet ja algoritmit