Körbart paket består av att komprimera den körbara filen och bifoga den kod som behövs för att packa upp och exekvera innehållet i filen. Förpackningar används av ett antal anledningar:
En körbar paketerare är ett program för att minska storleken på körbara filer. Den komprimerade filen innehåller en komprimerad kopia av källfilen och ett program för dekomprimering.
Efter att ha kört den komprimerade filen extraherar uppackaren programkoden från arkivet (vanligtvis direkt i minnet, även om det också finns packare som skriver filen till disken) och överför kontrollen till den.
En paketerad körbar fil är en typ av självextraherande arkiv ( SFX ) som innehåller den komprimerade informationen och dekomprimeraren i en enda fil.
Utöver de packningsalgoritmer som är inbyggda i vissa kompilatorer och utvecklingsverktyg (som Visual C++ , etc.), finns det ett antal verktyg för mer specifika uppgifter, som:
Exakt uppackning av körbara filer, som reverse engineering i allmänhet, är ofta svårt eller omöjligt.
Många dekomprimerare (som procdump ) kör en fil och skapar en dekomprimerad version av filen från en bild som laddas in i minnet. Men om den här filen innehöll ett virus kan systemet skadas. Dessutom har packare ett antal knep för att hantera dynamisk uppackning: till exempel att dekryptera koden inte helt, utan bara när den exekveras, eller till exempel dekryptera och starta hela viruset endast en viss dag i veckan .
Statiska uppackare som försöker packa upp en fil utan att köra den (som CUP386 eller UNP ) är värdelösa om packningsalgoritmen kräver att filen körs.