Uppackning
Överlista obfuskering
Uppackning är en gratis lektion i Ethical Hacking Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Ethical Hacking Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Ethical Hacking Academy innehåller totalt 4 lektioner.
Vad är packning?
Packning komprimerar eller krypterar ett programs verkliga kod och omsluter den i en liten stub. Vid körning packar stubben upp originalkoden i minnet och kör den.
Författare av skadlig kod använder packning för att undvika signaturbaserad upptäckt och försvåra statisk analys.
Varför packa upp?
En packad binärfil innehåller få strängar, få importer och hög entropi. Den meningsbärande koden är dold tills stubben körs.
Uppackning återställer originalkoden så att den kan analyseras statiskt och verkliga IOC:er kan extraheras.
Identifiera en packare
Verktyg som Detect It Easy (DIE) och PEiD identifierar kända packare genom signaturer. Hög entropi och en mycket liten importtabell är också starka ledtrådar.
Vanliga packare är UPX, ASPack och Themida.
die sample.exe
# Packer: UPX(3.96)Packa upp UPX
UPX är en vanlig, icke-skadlig packare som kan reverseras med sitt eget verktyg. Flaggan -d dekomprimerar binärfilen till dess ursprungliga form.
Många prover i praktiken använder UPX eller en något modifierad version av UPX, så detta är ofta det första försöket.
upx -d sample.exeManuell uppackning: idén
Egna packare kan inte packas upp med ett verktyg. I stället låter man stubben packa upp sig själv i minnet och fångar sedan resultatet.
Planen är att köra provet under en debugger, stoppa direkt när uppackningen är klar och dumpa den nu synliga koden.
Hitta OEP
Den ursprungliga startpunkten (OEP) är platsen dit körningen hoppar när uppackningen är klar. Att nå OEP innebär att den verkliga koden nu finns i minnet.
Tekniker för att hitta den är bland annat att leta efter ett långt hopp ut ur stubben eller att sätta en brytpunkt på minne som stubben först skriver till och sedan kör.
Brytpunkter för uppackning
Ett vanligt knep är att sätta en hårdvarubrytpunkt på stacken (stubben återställer ofta register precis innan den hoppar till OEP) eller en brytpunkt på vanliga API-anrop som den uppackade koden använder.
När brytpunkten utlöses vid OEP är originalkoden fullständigt avkodad.
Dumpa processen
Vid OEP dumpar ni processens minne till en ny fil. Verktyg som Scylla (inbyggt i x64dbg) eller PE-sieve fångar den uppackade avbildningen.
Dumpen innehåller nu de verkliga instruktionerna, men den kanske ännu inte kan köras på egen hand.
Återskapa importer
Efter dumpningen är Import Address Table ofta trasig eftersom packaren löste importer under körning. Scylla kan återskapa IAT så att den dumpade filen kan analyseras.
När importerna är korrigerade kan ni läsa in den rena dumpen i Ghidra eller IDA.
Annan obfuskering
Utöver packning använder skadeprogram annan obfuskering: strängar som krypteras och avkodas under körning, skräpinstruktioner, utplattning av kontrollflödet och anti-debugging-kontroller.
Dessa tekniker besegras från fall till fall, ofta genom att kombinera dynamisk spårning med noggrann statisk analys.
Verifiera det uppackade provet
Efter dumpning och återskapande av importer bör ni bekräfta att det lyckats genom att köra statisk analys igen: nu bör ni se många fler strängar och en ifylld importtabell.
Om entropin är tillbaka på normal nivå och API:er syns, lyckades uppackningen och den verkliga koden är redo att analyseras.
Snabbkontroll
Kom ihåg vad OEP betecknar vid manuell uppackning.
Sammanfattning
Ni förstår nu uppackning:
- Packning döljer den verkliga koden; identifiera den med DIE/PEiD, hög entropi och få importer.
- Kända packare som UPX packas upp med ett verktyg (
upx -d). - För egna packare kör ni under en debugger, hittar OEP, dumpar med Scylla och återskapar importer.
- Annan obfuskering (krypterade strängar, anti-debugging) hanteras från fall till fall.
Ni har slutfört kursen Reverse Engineering Malware.
Lär dig Ethical Hacking Academy med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 31
- Lektioner
- 111
Vanliga frågor
Är lektionen ”Uppackning” gratis?
Ja – hela texten till ”Uppackning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Ethical Hacking Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Ethical Hacking Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Uppackning”?
Överlista obfuskering Ni övar på Ethical Hacking Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Ethical Hacking Academy?
Du behöver inga förkunskaper. Utbildningen i Ethical Hacking Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Uppackning”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Ethical Hacking Academy-lektionen?
Ja. Varje Ethical Hacking Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.