Pakkauksen purkaminen
Ohittakaa obfuskointi.
Pakkauksen purkaminen on ilmainen Ethical Hacking Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Ethical Hacking Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Ethical Hacking Academy-kurssilla on yhteensä 4 oppituntia.
Mitä pakkaaminen on?
Pakkaaminen tiivistää tai salaa ohjelman todellisen koodin ja käärii sen pienen tietopaketin purkajan eli stubin sisään. Ajon aikana stub purkaa alkuperäisen koodin muistiin ja suorittaa sen.
Haittaohjelmien tekijät käyttävät pakkaamista allekirjoitusten väistämiseen ja staattisen analyysin vaikeuttamiseen.
Miksi purkaa?
Pakatusta binääritiedostosta löytyy vain vähän merkkijonoja ja tuonteja, ja sen entropia on korkea. Merkityksellinen koodi pysyy piilossa, kunnes stub suoritetaan.
Purkaminen palauttaa alkuperäisen koodin, jotta voitte analysoida sitä staattisesti ja poimia todelliset IOC:t.
Pakkaajan tunnistaminen
Detect It Easy (DIE) ja PEiD -työkalujen kaltaiset ohjelmat tunnistavat tunnettuja pakkaajia allekirjoituksen perusteella. Myös korkea entropia ja pieni tuontitaulu ovat vahvoja vihjeitä.
Yleisiä pakkaajia ovat UPX, ASPack ja Themida.
die sample.exe
# Packer: UPX(3.96)UPX:n purkaminen
UPX on yleinen, ei-haitallinen pakkaaja, jonka voi purkaa sen omalla työkalulla. -d-valitsin purkaa binääritiedoston takaisin alkuperäiseen muotoonsa.
Monissa tosielämän näytteissä käytetään UPX:ää tai hieman muokattua UPX:ää, joten tämä on usein ensimmäinen kokeiltava menetelmä.
upx -d sample.exeManuaalinen purkaminen: perusajatus
Mukautettuja pakkaajia ei voi purkaa yhdellä työkalulla. Sen sijaan stubin annetaan purkaa itsensä muistiin, minkä jälkeen tulos kaapataan.
Suunnitelma on seuraava: suorittakaa näyte virheenkorjaimessa, pysäyttäkää suoritus heti purkamisen valmistuttua ja vedostakaa nyt paljastunut koodi.
OEP:n löytäminen
Alkuperäinen aloituspiste (OEP) on kohta, johon suoritus siirtyy purkamisen päätyttyä. OEP:n saavuttaminen tarkoittaa, että todellinen koodi on nyt muistissa.
Sen voi löytää esimerkiksi seuraamalla stubista ulos suuntautuvaa pitkää hyppäystä tai asettamalla keskeytyspisteen muistiin, johon stub kirjoittaa ja jota se sitten suorittaa.
Keskeytyspisteet purkamista varten
Yleinen keino on asettaa laitteistopohjainen keskeytyspiste pinoon (stub palauttaa usein rekisterit juuri ennen hyppäämistä OEP:hen) tai yleisiin API-kutsuihin, joita purettu koodi käyttää.
Kun keskeytyspiste osuu OEP:ssä, alkuperäinen koodi on dekoodattu kokonaan.
Prosessin vedostaminen
Vedostakaa OEP:ssä prosessin muisti uuteen tiedostoon. Scylla (sisäänrakennettuna x64dbg:hen) ja PE-sieve pystyvät kaappaamaan puretun vedoksen.
Vedos sisältää nyt todelliset käskyt, mutta se ei välttämättä vielä toimi itsenäisesti.
Tuontien uudelleenrakentaminen
Vedostamisen jälkeen tuontiosoitetaulu eli Import Address Table on usein rikkoutunut, koska pakkaaja ratkaisi tuonnit ajonaikaisesti. Scylla voi rakentaa IAT:n uudelleen, jotta vedostettua tiedostoa voidaan analysoida.
Kun tuonnit on korjattu, voitte ladata puhtaan vedoksen Ghidraan tai IDA:an.
Muu obfuskointi
Pakkaamisen lisäksi haittaohjelmissa käytetään muuta obfuskointia: ajon aikana dekoodattuja salattuja merkkijonoja, roskaohjeita, ohjausvuon litistämistä ja virheenkorjauksen vastaisia tarkistuksia.
Nämä torjutaan tapauskohtaisesti, usein yhdistämällä dynaaminen jäljitys kärsivälliseen staattiseen lukemiseen.
Puretun näytteen tarkistaminen
Kun olette vedostaneet prosessin ja rakentaneet tuonnit uudelleen, varmistakaa onnistuminen suorittamalla staattinen analyysi uudelleen: nyt pitäisi näkyä paljon enemmän merkkijonoja ja täytetty tuontitaulu.
Jos entropia on palautunut normaaliksi ja API:t näkyvät, purkaminen onnistui ja todellinen koodi on valmis analysoitavaksi.
Pikakertaus
Palauttakaa mieleenne, mitä OEP tarkoittaa manuaalisen purkamisen aikana.
Kertaus
Ymmärrätte nyt purkamisen:
- Pakkaaminen piilottaa todellisen koodin; tunnistakaa se DIE/PEiD-työkaluilla, korkean entropian ja vähäisten tuontien avulla.
- Tunnetut pakkaajat, kuten UPX, puretaan työkalulla (
upx -d). - Mukautettujen pakkaajien tapauksessa suorittakaa näyte virheenkorjaimessa, etsikää OEP, tehkää vedos Scyllalla ja rakentakaa tuonnit uudelleen.
- Muu obfuskointi (salatut merkkijonot, virheenkorjauksen esto) käsitellään tapauskohtaisesti.
Olette suorittaneet Haittaohjelmien takaisinmallinnus -kurssin.
Opi Ethical Hacking Academy tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 31
- Oppitunnit
- 111
Usein kysytyt kysymykset
Onko oppitunti ”Pakkauksen purkaminen” ilmainen?
Kyllä – oppitunnin ”Pakkauksen purkaminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Ethical Hacking Academy-kurssin, päivitä CoddyKit PROhon. Ethical Hacking Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Pakkauksen purkaminen”?
Ohittakaa obfuskointi. Harjoittelet Ethical Hacking Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Ethical Hacking Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Ethical Hacking Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Pakkauksen purkaminen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Ethical Hacking Academy-oppitunnilla?
Kyllä. Jokainen Ethical Hacking Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Staattinen analyysi
- Dynaaminen analyysi
- Purkamisen perusteet
- Pakkauksen purkaminen