Ambalarea fișierelor executabile

Ambalajul executabil constă în comprimarea fișierului executabil și atașarea acestuia a codului necesar pentru decomprimarea și executarea conținutului fișierului. Ambalajul este folosit din mai multe motive:

Ambalator executabil

Un pachet executabil este un program pentru reducerea dimensiunii fișierelor executabile. Fișierul comprimat conține o copie comprimată a fișierului sursă și un program pentru decomprimare.

După rularea fișierului comprimat, dezambalătorul extrage codul programului din arhivă (de obicei direct în memorie, deși există și packeri care scriu fișierul pe disc) și îi transferă controlul.

Un executabil pachet este un tip de arhivă autoextractabilă ( SFX ) care conține informațiile comprimate și decompresorul într-un singur fișier.

Exemple de ambalatori

Pe lângă algoritmii de împachetare încorporați în unele compilatoare și instrumente de dezvoltare (cum ar fi Visual C++ , etc.), există o serie de instrumente pentru sarcini mai specifice, cum ar fi:

Unpackers

Dezambalarea precisă a fișierelor executabile, cum ar fi ingineria inversă în general, este adesea dificilă sau imposibilă.

Multe decompresoare (cum ar fi procdump ) rulează un fișier și creează o versiune decomprimată a fișierului dintr-o imagine încărcată în memorie. Cu toate acestea, dacă acest fișier conținea un virus, sistemul ar putea fi deteriorat. În plus, packerii au o serie de trucuri pentru a se ocupa de dezambalarea dinamică: de exemplu, decriptarea codului nu complet, ci doar pe măsură ce este executat sau, de exemplu, decriptarea și lansarea întregului virus doar într-o anumită zi a săptămânii. .

Dezambalatoarele statice care încearcă să despacheteze un fișier fără să-l ruleze (cum ar fi CUP386 sau UNP ) sunt inutile dacă algoritmul de împachetare necesită rularea fișierului.

Vezi și