Omgåelse af packere og opnåelse af OEP
Genkend runtime-packere, find Original Entry Point, og dump et udpakket image til ren statisk analyse af binærfiler, der er beskyttet mod reverse engineering.
Omgåelse af packere og opnåelse af OEP er en gratis Grundlæggende reverse engineering og binæranalyse-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende reverse engineering og binæranalyse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende reverse engineering og binæranalyse-kurset indeholder 4 lektioner i alt.
Hvorfor packere blokerer dig
Du forstår obfuskering, kan omgå anti-analyse-tjek og har styr på debugging i kernetilstand. Der er dog stadig en almindelig hindring: packere, der komprimerer eller krypterer den egentlige kode, så statiske værktøjer kun ser en stub.
Hvad en packer gør
En packer pakker det oprindelige program ind. Under kørsel dekomprimerer eller dekrypterer en lille udpakningsstub den egentlige kode til hukommelsen og springer derefter til den.
- Mindre filstørrelse
- Skjulte strenge og importer
- Modvirker naiv statisk analyse
Registrering af en pakket binær fil
Tegn på packing:
- Sektioner med høj entropi (ser tilfældige ud)
- Få importer og mærkelige sektionsnavne som
UPX0 - Et lille kodeområde med en stor hukommelsesallokering
Værktøjer som Detect It Easy eller PEiD markerer kendte packere.
die target.exe
# UPX 3.96 detected; section UPX1 entropy 7.9Statisk udpakning
For velkendte packere kan et værktøj vende processen direkte. UPX har for eksempel en indbygget dekomprimering.
upx -d target.exe -o target_unpacked.exeNår statisk udpakning ikke virker
Tilpassede eller ændrede packere har ingen offentlig udpakker. Så lader du stubben gøre arbejdet: kør den under en debugger, indtil den egentlige kode er i hukommelsen, og kopiér den derefter.
Det er generisk, manuel udpakning.
Det oprindelige indgangspunkt
OEP (Original Entry Point) er det sted, hvor det udpakkede programs egentlige kørsel begynder. Stubben springer dertil efter udpakningen.
At finde OEP er den afgørende milepæl: på det tidspunkt er den egentlige kode pakket helt ud i hukommelsen.
Find OEP: hale-springet
Stubbe slutter typisk med et langt spring eller et push/ret til det udpakkede område (et hale-spring). Sæt et breakpoint dér; når det udløses, er den næste instruktion OEP.
; end of stub
popad
jmp 0x00401000 ; <- jumps to OEPTricket med breakpoint ved skrivning til hukommelsen
En anden teknik er at sætte et hardware-breakpoint på udførelse for det område, som stubben skriver kode til. Kørsel stopper i samme øjeblik, den udpakkede kode kører.
ESP-/stakbaserede tricks (metoden 'pushad/popad') kan også lokalisere halen.
Dumpning af processen
Ved OEP skal du dumpe billedet fra hukommelsen til disken med et værktøj som Scylla eller et debugger-plugin.
Dumpet indeholder dekrypteret kode og strenge, men importtabellen er ødelagt, fordi den blev løst under kørsel.
Genopbygning af importtabellen
Det sidste trin er rekonstruktion af IAT: Værktøjer som Scylla scanner hukommelsen efter de fundne importer og genopbygger en gyldig importadressetabel, så der dannes en ren eksekverbar fil, som kan analyseres statisk.
Pakning i flere lag
Besværlige prøver kombinerer flere pakkere. Efter dumpning kan dit udpakkede billede selv være pakket igen. Kør registreringen igen på dumpet.
Gentag cyklussen med kørsel til OEP og dumpning, indtil entropien falder, og de rigtige strenge og importer endelig dukker op.
Hurtigt tjek
Når du pakker manuelt ud, hvorfor er det afgørende tidspunkt at dumpe processen, når du når OEP?
Opsummering
Du kan nu fjerne pakkere fra beskyttede binære filer:
- Registrer pakning via entropi, sektioner og importer
- Brug kendte udpakkere, eller kør stubben frem til OEP
- Find springet til sidst, dump ved OEP, og genopbyg IAT
Resultatet er et rent billede, der er klar til fuld statisk analyse.
Lær Assembly med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Omgåelse af packere og opnåelse af OEP” gratis?
Ja — alle 3 lektioner i læringssporet Grundlæggende reverse engineering og binæranalyse, inklusive “Omgåelse af packere og opnåelse af OEP”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende reverse engineering og binæranalyse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Omgåelse af packere og opnåelse af OEP”?
Genkend runtime-packere, find Original Entry Point, og dump et udpakket image til ren statisk analyse af binærfiler, der er beskyttet mod reverse engineering. Du øver dig i Grundlæggende reverse engineering og binæranalyse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Grundlæggende reverse engineering og binæranalyse?
Der kræves ingen tidligere erfaring. Grundlæggende reverse engineering og binæranalyse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Omgåelse af packere og opnåelse af OEP”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Grundlæggende reverse engineering og binæranalyse-lektion?
Ja. Alle Grundlæggende reverse engineering og binæranalyse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Forståelse af obfuskeringsteknikker
- Omgåelse af foranstaltninger mod analyse
- Begreber inden for kernel-mode-debugging
- Omgåelse af packere og opnåelse af OEP