یو پی ایکس (انگلیسی: UPX مخفف Ultimate Packer for Executables) یک ابزار متن باز و آزاد برای بستهبندی (انگلیسی: Packing) فایلهای اجرایی است که از فرمتهای مختلف در سیستم عاملهای مختلف پشتیبانی مینماید.[۲][۳]
فشردهسازی
UPX با استفاده از الگوریتم فشرده سازی داده به نام UCL[۴] که یک پیادهسازی متن باز از الگوریتم تجاریNRV (مخفف:Not Really Vanished[۵]) است، استفاده میکند.[۶]
UCL به نحوی طراحی شدهاست که عمل decompression بتواند به سادگی در چند صد بایت پیادهسازی شود. UCL به هیچ حافظه اضافه ای برای decompression نیاز ندارد.
UPX (پس از ۲٫۹۰ بتا) از الگوریتم فشرده سازی LZMA روی بیشتر سیستم عاملها پشتیبانی میکند.
از نسخه ۳٫۹۱، UPX از فایلهای اجرایی ۶۴ بیتی (x64) برای سیستم عامل ویندوز پشتیبانی میکند.[۷] البته این ویژگی فعلاً به صورت آزمایشی است.
وافشرده سازی
UPX برای وافشرده سازی (انگلیسی: decompression) از دو شیوه استفاده میکند: روش در-محل (انگلیسی: in-place) و استخراج در یک فایل موقت.
روش در محل، که فایل اجرایی را در حافظه رم وافشرده میکند، روی همه سکوها پشتیبانی نمیشود. سایر سکوها از استخراج در فایل موقت استفاده میکنند. این روش سربار اضافی دارد و معایب دیگری نیز داد، هرچند، امکان بستهبندی (انگلیسی: packing) همه فرمتهای اجرایی را دارد.
چندین نمونه در حال اجرا از فایل اجرایی قادر به به اشتراک گذاری سگمنتهای مشترک حافظه نیستند.
بستهبندی اصلاح نشده UPX، معمولاً بوسیله آنتیویروسها باز شده و بررسی میشوند. UPX همچنین قابلیت بازکردن بستههای شامل فایلهای اجرایی اصلاح نشده را دارد.
UPX در حال حاضر از فایلهای PE که حاوی کدهای CIL (برای اجرا روی Net Framework) است، پشتیبانی نمیکند.
خطای یادکرد: برچسپ <ref> که با نام «UPX-images» درون <references> تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref> که با نام «UPX-data» درون <references> تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref> که با نام «UPX-8086» درون <references> تعریف شده، در متن قبل از آن استفاده نشده است.
↑Marak, Victor (2015). Windows Malware Analysis Essentials. Packt Publishing. p. 188. ISBN978-1-78528-151-8. Retrieved November 22, 2015. Packers such as Ultimate Packer for Executables (UPX) are more of executable compressors as size reduction is the primary goal, not obfuscation, which can be a byproduct ...
↑Blunden, Bill (2013). The Rootkit Arsenal (Second ed.). Jones & Bartlett Learning. pp. 353–355. ISBN978-1-4496-2636-5. Retrieved November 22, 2015. One of the most prolific executable packers is UPX (the Ultimate Packer for executables). Not only does it handle dozens of different executable formats, but also its source code is available online.