یو پی ایکس ( انگلیسی: 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 ) همه فرمت های اجرایی را دارد.
روش استخراج در فایل موقت معایب زیر را دارد:
• مجوزهای خاص نادیده گرفته می شوند مانند suid.
• argv معنی دار نخواهد بود.
• چندین نمونه در حال اجرا از فایل اجرایی قادر به به اشتراک گذاری سگمنت های مشترک حافظه نیستند.
بسته بندی اصلاح نشده UPX، معمولاً بوسیله آنتی ویروس ها باز شده و بررسی می شوند. UPX همچنین قابلیت بازکردن بسته های شامل فایل های اجرایی اصلاح نشده را دارد.
• ARM/PE
• Atari/TOS
• *BSD/i386
• DJGPP2/COFF
• DOS/COM ( از جمله برخی از تصاویر دودویی )
• DOS/EXE
• DOS/SYS
• لینوکس/i386 a. out
• لینوکس/ELF در i386 ، x86 - 64، ARM, PowrPC
• Linux/kernel در i386, x86 - 64
• Mach - O/ppc32 Mach - O/i386 ( حتی تولید شده توسط Google Go و پس از ۳٫۰۹ )
• rtm32/PE ( تولید شده توسط Borland C/Pascal Compilers[ ۸] )
• tmt/adam ( تولید شده توسط کامپایلر TMT Pascal[ ۹] )
• Playstation1/EXE
• Watcom/LE ، DOS4G ) PMODE/W )
• Windows/PE EXE files containint native x86 ( 32 - bit ) code
• Windows/PE EXE files containint native x64 ( 64 - bit ) code - در مرحله آزمایشی
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفUPX با استفاده از الگوریتم فشرده سازی داده به نام UCL[ ۴] که یک پیاده سازی متن باز از الگوریتم تجاریNRV ( مخفف:Not Really Vanished[ ۵] ) است، استفاده می کند. [ ۶]
UCL به نحوی طراحی شده است که عمل decompression بتواند به سادگی در چند صد بایت پیاده سازی شود. UCL به هیچ حافظه اضافه ای برای decompression نیاز ندارد.
UPX ( پس از ۲٫۹۰ بتا ) از الگوریتم فشرده سازی LZMA روی بیشتر سیستم عامل ها پشتیبانی می کند.
از نسخه ۳٫۹۱، UPX از فایل های اجرایی ۶۴ بیتی ( x64 ) برای سیستم عامل ویندوز پشتیبانی می کند. [ ۷] البته این ویژگی فعلاً به صورت آزمایشی است.
UPX برای وافشرده سازی ( انگلیسی: decompression ) از دو شیوه استفاده می کند: روش در - محل ( انگلیسی: in - place ) و استخراج در یک فایل موقت.
روش در محل، که فایل اجرایی را در حافظه رم وافشرده می کند، روی همه سکوها پشتیبانی نمی شود. سایر سکوها از استخراج در فایل موقت استفاده می کنند. این روش سربار اضافی دارد و معایب دیگری نیز داد، هرچند، امکان بسته بندی ( انگلیسی: packing ) همه فرمت های اجرایی را دارد.
روش استخراج در فایل موقت معایب زیر را دارد:
• مجوزهای خاص نادیده گرفته می شوند مانند suid.
• argv معنی دار نخواهد بود.
• چندین نمونه در حال اجرا از فایل اجرایی قادر به به اشتراک گذاری سگمنت های مشترک حافظه نیستند.
بسته بندی اصلاح نشده UPX، معمولاً بوسیله آنتی ویروس ها باز شده و بررسی می شوند. UPX همچنین قابلیت بازکردن بسته های شامل فایل های اجرایی اصلاح نشده را دارد.
• ARM/PE
• Atari/TOS
• *BSD/i386
• DJGPP2/COFF
• DOS/COM ( از جمله برخی از تصاویر دودویی )
• DOS/EXE
• DOS/SYS
• لینوکس/i386 a. out
• لینوکس/ELF در i386 ، x86 - 64، ARM, PowrPC
• Linux/kernel در i386, x86 - 64
• Mach - O/ppc32 Mach - O/i386 ( حتی تولید شده توسط Google Go و پس از ۳٫۰۹ )
• rtm32/PE ( تولید شده توسط Borland C/Pascal Compilers[ ۸] )
• tmt/adam ( تولید شده توسط کامپایلر TMT Pascal[ ۹] )
• Playstation1/EXE
• Watcom/LE ، DOS4G ) PMODE/W )
• Windows/PE EXE files containint native x86 ( 32 - bit ) code
• Windows/PE EXE files containint native x64 ( 64 - bit ) code - در مرحله آزمایشی
wiki: یو پی ایکس