Siirry suoraan sisältöön

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
  • TTV22S5
    Tieto- ja viestintätekniikka (AMK)
  • TTV22S2
    Tieto- ja viestintätekniikka (AMK)
  • TTV22S3
    Tieto- ja viestintätekniikka (AMK)
  • TIC22S1
    Bachelor's Degree Programme in Information and Communications Technology
  • TTV22S1
    Tieto- ja viestintätekniikka (AMK)
  • TTV22SM
    Tieto- ja viestintätekniikka (AMK)
  • TTV22S4
    Tieto- ja viestintätekniikka (AMK)
  • TTV22SM2
    Tieto- 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
  • TTV22S5
    Tieto- ja viestintätekniikka (AMK)
  • TTV22S2
    Tieto- ja viestintätekniikka (AMK)
  • TTV22S3
    Tieto- ja viestintätekniikka (AMK)
  • TIC22S1
    Bachelor's Degree Programme in Information and Communications Technology
  • TTV22S1
    Tieto- ja viestintätekniikka (AMK)
  • TTV22S4
    Tieto- 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
  • TTV21S3
    Tieto- ja viestintätekniikka (AMK)
  • TTV21S5
    Tieto- ja viestintätekniikka (AMK)
  • TIC21S1
    Bachelor's Degree Programme in Information and Communications Technology
  • TTV21S2
    Tieto- ja viestintätekniikka (AMK)
  • TTV21S1
    Tieto- 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