UPX - UPX

UPX
Ultimate Packer for eXecutebles.png
Pierwsze wydanie 26 maja 1998 ; 22 lata temu  ( 1998-05-26 )
Wersja stabilna
3.96 / 23 stycznia 2020 ; 11 miesięcy temu  ( 2020-01-23 )
Magazyn Edytuj to w Wikidata
Napisane w C ++ , zestaw
System operacyjny Microsoft Windows , Linux , macOS , DOS , Atari TOS
Platforma i386 , MIPS , AMD64 , ARM , PowerPC , m68k
Dostępne w język angielski
Rodzaj Kompresja plików wykonywalnych
Licencja GPL z wyjątkiem skompresowanych plików wykonywalnych, zastrzeżony dla algorytmu kompresji w dystrybucjach binarnych
Stronie internetowej upx .github .io

UPX ( Ultimate Packer for Executables ) to program pakujący o otwartym kodzie źródłowym, obsługujący wiele formatów plików z różnych systemów operacyjnych.

Kompresja

UPX korzysta z algorytmu kompresji danych o nazwie UCL, który jest implementacją fragmentów zastrzeżonego algorytmu NRV ( Not Really Vanished ) typu open source .

UCL został zaprojektowany tak, aby był na tyle prosty, że dekompresor można zaimplementować w zaledwie kilkuset bajtach kodu. UCL nie wymaga przydzielania dodatkowej pamięci do dekompresji, co jest istotną zaletą, która oznacza, że ​​plik wykonywalny spakowany w formacie UPX zwykle nie wymaga dodatkowej pamięci.

UPX (od wersji 2.90 beta) może używać LZMA na większości platform; jednakże jest to domyślnie wyłączone dla wersji 16-bitowej ze względu na niską prędkość dekompresji na starszych komputerach (użyj, --lzma aby ją wymusić).

Począwszy od wersji 3.91, UPX obsługuje również 64-bitowe (x64) pliki wykonywalne na platformie Windows . Ta funkcja jest obecnie deklarowana jako eksperymentalna .

Dekompresja

UPX obsługuje dwa mechanizmy dekompresji: technikę w miejscu i rozpakowywanie do pliku tymczasowego .

Technika lokalna, która dekompresuje plik wykonywalny do pamięci, nie jest możliwa na wszystkich obsługiwanych platformach. Ma tę zaletę, że jest bardziej wydajny pod względem pamięci, a środowisko skonfigurowane przez system operacyjny pozostaje poprawne.

Reszta wykorzystuje wyodrębnienie do pliku tymczasowego. Ta procedura wiąże się z dodatkowymi kosztami i innymi wadami; umożliwia jednak spakowanie dowolnego formatu pliku wykonywalnego. Metoda wyodrębniania do pliku tymczasowego ma kilka wad:

  • Uprawnienia specjalne, takie jak suid, są ignorowane .
  • argv[0] nie będzie miało znaczenia.
  • Wiele uruchomionych instancji pliku wykonywalnego nie może współużytkować wspólnych segmentów.

Niezmodyfikowane opakowanie UPX jest często wykrywane i rozpakowywane przez skanery oprogramowania antywirusowego . UPX ma również wbudowaną funkcję rozpakowywania niezmodyfikowanych plików wykonywalnych spakowanych w sobie.

Obsługiwane formaty

UPX obsługuje następujące formaty:

UPX obecnie nie obsługuje plików PE zawierających kod CIL przeznaczony do działania w systemie .NET Framework .

Uwagi

Bibliografia

Linki zewnętrzne