Käänteinen suunnittelu: lue ohjelmistoa, jonka lähdekoodia sinulla ei ole
Käänteinen suunnittelu tarkoittaa käännetyn ohjelmiston analysointia sen toiminnan ymmärtämiseksi ilman alkuperäistä lähdekoodia. Tietoturvatutkijat käyttävät sitä haavoittuvuuksien löytämiseen, haittaohjelma-analyytikot vihamielisen koodin tutkimiseen ja firmware-kehittäjät sulautettujen järjestelmien ymmärtämiseen. Tällä oppimispolulla käsitellään koko kokonaisuus raaoista binäärimuodoista ja Assemblystä staattiseen ja dynaamiseen analyysiin sekä aina exploit-kehitykseen ja edistyneisiin käänteisen suunnittelun vastaisiin tekniikoihin asti.
Mitä opit
Aloitat binäärien perusteista: suoritettavien tiedostojen muodoista, muistin asettelusta ja siitä, miten korkean tason koodi muunnetaan konekäskyiksi. Sen jälkeen luet ja tulkitset x86/x64 Assemblyä sellaisena kuin se näkyy todellisessa disassembly-tulosteessa. Käytät staattisen analyysin työkaluja binäärien tutkimiseen ilman niiden suorittamista ja siirryt sitten dynaamiseen analyysiin ja virheenkorjaukseen tarkkailemaan ohjelman suoritusta reaaliajassa. Myöhemmillä kursseilla käsitellään haittaohjelma-analyysiä, kääntäjän optimointeja ja niiden tapoja hämärtää ohjelman tarkoitusta, automaattisen staattisen analyysin skriptausta sekä käytännössä käytettyjä käänteisen suunnittelun vastaisia temppuja. Polku päättyy firmwaren ja sulautettujen järjestelmien käänteiseen suunnitteluun, haavoittuvuustutkimukseen, exploit-kehitykseen ja katsaukseen alan tulevaisuuden suuntiin.
Oppimispolku
Polku sisältää kaksitoista kurssia tasoilta A1–C2. Ensimmäinen kurssi esittelee peruskäsitteet A1-tasolla ja tarjoaa maksuttoman ensikatsauksen. Seuraavat kaksi kurssia (A2–B2) kehittävät binäärien ymmärtämistä ja Assemblyn lukutaitoa. Neljä B2/C1-kurssia käsittelee analyysin tärkeimmät työvaiheet: staattiset työkalut, dynaamisen virheenkorjauksen, haittaohjelmien perusteet ja skriptauksen. Neljä viimeistä kurssia sijoittuu tasoille C1–C2 ja käsittelee vaativimpia aiheita: kääntäjän optimointeja ja niiden vaikutusta disassemblyyn, firmwarea ja sulautettuja kohteita, haavoittuvuustutkimusta ja exploit-kehitystä sekä edistyneitä aiheita, kuten alan nykyisiä suuntauksia.
Näin se toimii
Jokainen kurssi koostuu lyhyistä ja keskittyneistä oppitunneista, joihin kuuluu käytännön harjoituksia sisäänrakennetussa editorissa. Luet Assemblyä, merkitset binäärejä ja ratkaiset todellisia analyysitehtäviä reaaliaikaisen palautteen avulla. Saat AI-tutorilta apua jokaisessa vaiheessa, jos jäät jumiin käskyjaksoon, työkalun valitsimeen tai vieraaseen binäärirakenteeseen.