- ÐнÑеÑеÑÐ½Ð°Ñ ÑазÑабоÑка вокÑÑг upx Ð´Ð»Ñ ÑменÑÑÐµÐ½Ð¸Ñ Ð²ÐµÑа иÑполнÑемÑÑ Ñайлов
- ÐÑинÑÐ¸Ð¿Ñ ÑабоÑÑ Ð¸ оÑновнÑе алгоÑиÑмÑ
- ÐÑобенноÑÑи ÑеализаÑии и аÑÑ Ð¸ÑекÑÑÑÑ
- ÐÑеимÑÑеÑÑва и недоÑÑаÑки иÑполÑзованиÑ
- ÐлÑÑеÑнаÑивнÑе инÑÑÑÑменÑÑ Ð¸ ÑÑавнение
- ÐÑакÑиÑеÑкое пÑименение и пÑимеÑÑ
- ÐпÑимизаÑÐ¸Ñ Ð¸ пÑодвинÑÑÑе ÑÐµÑ Ð½Ð¸ÐºÐ¸ ÑжаÑиÑ
- ÐеÑÑпекÑÐ¸Ð²Ñ ÑазвиÑÐ¸Ñ Ð¸ новÑе гоÑизонÑÑ
ÐнÑеÑеÑÐ½Ð°Ñ ÑазÑабоÑка вокÑÑг upx Ð´Ð»Ñ ÑменÑÑÐµÐ½Ð¸Ñ Ð²ÐµÑа иÑполнÑемÑÑ Ñайлов
Ð ÑовÑеменном миÑе ÑазÑабоÑки пÑогÑаммного обеÑпеÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ ÑазмеÑа иÑполнÑемÑÑ Ñайлов ÑвлÑеÑÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ задаÑей. ÐÑо оÑобенно акÑÑалÑно Ð´Ð»Ñ ÑаÑпÑоÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¿ÑогÑамм ÑеÑез инÑеÑнеÑ, где ÑкоÑоÑÑÑ ÑкаÑÐ¸Ð²Ð°Ð½Ð¸Ñ Ð¸ обÑем ÑÑаÑика игÑаÑÑ ÑÑÑеÑÑвеннÑÑ ÑолÑ. СÑÑеÑÑвÑÐµÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¾Ð² к ÑеÑÐµÐ½Ð¸Ñ ÑÑой пÑоблемÑ, и одним из ÑÑÑекÑивнÑÑ Ð¸Ð½ÑÑÑÑменÑов ÑвлÑеÑÑÑ upx. ÐÑа ÑÑилиÑа позволÑÐµÑ Ð·Ð½Ð°ÑиÑелÑно ÑменÑÑиÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¸ÑполнÑемÑÑ Ñайлов без поÑеÑи Ð¸Ñ ÑÑнкÑионалÑноÑÑи, иÑполÑзÑÑ Ð°Ð»Ð³Ð¾ÑиÑÐ¼Ñ ÑжаÑиÑ. ÐÑинÑип ÑабоÑÑ Ð´Ð¾ÑÑаÑоÑно пÑоÑÑ: она заменÑÐµÑ Ð¿Ð¾Ð²ÑоÑÑÑÑиеÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑи байÑов на более коÑоÑкие ÑÑÑлки, ÑÑо ÑменÑÑÐ°ÐµÑ Ð¾Ð±Ñий ÑÐ°Ð·Ð¼ÐµÑ Ñайла.
ÐажноÑÑÑ ÑменÑÑÐµÐ½Ð¸Ñ ÑазмеÑа иÑполнÑемÑÑ Ñайлов Ñложно пеÑеоÑениÑÑ. ÐÑо не ÑолÑко ÑÐºÐ¾Ð½Ð¾Ð¼Ð¸Ñ Ð¼ÐµÑÑо на диÑке и пÑопÑÑкнÑÑ ÑпоÑобноÑÑÑ ÑеÑи, но и Ð¼Ð¾Ð¶ÐµÑ ÑлÑÑÑиÑÑ Ð²ÑÐµÐ¼Ñ Ð·Ð°Ð¿ÑÑка пÑогÑамм, оÑобенно на ÑÑÑÑойÑÑÐ²Ð°Ñ Ñ Ð¾Ð³ÑаниÑеннÑми ÑеÑÑÑÑами. ÐÑоме Ñого, ÑжаÑÑе ÑÐ°Ð¹Ð»Ñ Ñложнее анализиÑоваÑÑ Ð·Ð»Ð¾ÑмÑÑленниками, ÑÑо коÑвенно повÑÑÐ°ÐµÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑ Ð¿ÑогÑаммного обеÑпеÑениÑ. ÐоÑÑомÑ, пÑименение подобнÑÑ Ð¸Ð½ÑÑÑÑменÑов ÑÑановиÑÑÑ ÑÑандаÑÑной пÑакÑикой в пÑоÑеÑÑе ÑбоÑки и ÑаÑпÑоÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¿ÑогÑамм.
ÐÑинÑÐ¸Ð¿Ñ ÑабоÑÑ Ð¸ оÑновнÑе алгоÑиÑмÑ
РоÑнове ÑабоÑÑ upx Ð»ÐµÐ¶Ð°Ñ ÑазлиÑнÑе алгоÑиÑÐ¼Ñ ÑжаÑиÑ, коÑоÑÑе подбиÑаÑÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ Ñипа иÑполнÑемого Ñайла и ÑÑебÑемого ÑÑÐ¾Ð²Ð½Ñ ÑжаÑиÑ. ÐеÑвонаÑалÑно, ÑÑилиÑа анализиÑÑÐµÑ ÑÑÑÑкÑÑÑÑ Ñайла, вÑÑвлÑÐµÑ Ð¿Ð¾Ð²ÑоÑÑÑÑиеÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑи байÑов и заменÑÐµÑ Ð¸Ñ Ð½Ð° более коÑоÑкие кодÑ. ÐаÑем, ÑÑи ÐºÐ¾Ð´Ñ ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² заголовке ÑжаÑого Ñайла, ÑÑо позволÑÐµÑ Ð¿ÑогÑамме воÑÑÑановиÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ñй код пÑи запÑÑке. СÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко ÑоÑмаÑов ÑжаÑиÑ, поддеÑживаемÑÑ upx, каждÑй из коÑоÑÑÑ Ð¸Ð¼ÐµÐµÑ Ñвои пÑеимÑÑеÑÑва и недоÑÑаÑки. ÐапÑимеÑ, ÑоÑÐ¼Ð°Ñ LZMA обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð±Ð¾Ð»ÐµÐµ вÑÑокÑÑ ÑÑÐµÐ¿ÐµÐ½Ñ ÑжаÑиÑ, но ÑÑебÑÐµÑ Ð±Ð¾Ð»ÑÑе ÑеÑÑÑÑов пÑоÑеÑÑоÑа Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ð¸ ÑаÑпаковки, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº ÑоÑÐ¼Ð°Ñ UPX ÑвлÑеÑÑÑ Ð±Ð¾Ð»ÐµÐµ бÑÑÑÑÑм, но менее ÑÑÑекÑивнÑм.
ÐÑÐ±Ð¾Ñ Ð¾Ð¿ÑималÑного алгоÑиÑма ÑжаÑÐ¸Ñ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ ÐºÐ¾Ð½ÐºÑеÑнÑÑ ÑÑебований пÑоекÑа. ÐÐ»Ñ Ð¿ÑогÑамм, коÑоÑÑе ÑаÑÑо запÑÑкаÑÑÑÑ Ð¸ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑÑо загÑÑжаÑÑÑÑ, пÑедпоÑÑиÑелÑнее иÑполÑзоваÑÑ Ð±Ð¾Ð»ÐµÐµ бÑÑÑÑÑе алгоÑиÑÐ¼Ñ ÑжаÑиÑ, даже еÑли ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº менÑÑÐµÐ¼Ñ ÑменÑÑÐµÐ½Ð¸Ñ ÑазмеÑа Ñайла. ÐÐ»Ñ Ð¿ÑогÑамм, коÑоÑÑе Ñедко запÑÑкаÑÑÑÑ Ð¸Ð»Ð¸ ÑаÑпÑоÑÑÑанÑÑÑÑÑ ÑеÑез инÑеÑнеÑ, можно вÑбÑаÑÑ Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑивнÑе алгоÑиÑÐ¼Ñ ÑжаÑиÑ, ÑÑÐ¾Ð±Ñ ÑÑкономиÑÑ Ð¼ÐµÑÑо на диÑке и пÑопÑÑкнÑÑ ÑпоÑобноÑÑÑ ÑеÑи. Ðажно оÑмеÑиÑÑ, ÑÑо пÑоÑеÑÑ ÑжаÑÐ¸Ñ Ð¸ ÑаÑпаковки Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð½Ð¸Ð¼Ð°ÑÑ Ð½ÐµÐºÐ¾ÑоÑое вÑемÑ, поÑÑÐ¾Ð¼Ñ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑÑиÑÑваÑÑ ÑÑÐ¾Ñ ÑакÑÐ¾Ñ Ð¿Ñи вÑбоÑе алгоÑиÑма.
ÐÑобенноÑÑи ÑеализаÑии и аÑÑ Ð¸ÑекÑÑÑÑ
ÐÑÑ Ð¸ÑекÑÑÑа upx ÑазÑабоÑана Ñаким обÑазом, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÐµÑпеÑиÑÑ Ð¼Ð°ÐºÑималÑнÑÑ ÑовмеÑÑимоÑÑÑ Ñ ÑазлиÑнÑми опеÑаÑионнÑми ÑиÑÑемами и Ñипами иÑполнÑемÑÑ Ñайлов. УÑилиÑа напиÑана на ÑзÑке C и поÑÑиÑована на множеÑÑво плаÑÑоÑм, вклÑÑÐ°Ñ Windows, Linux, macOS и дÑÑгие. ÐÑо Ð´ÐµÐ»Ð°ÐµÑ ÐµÑ ÑнивеÑÑалÑнÑм инÑÑÑÑменÑом Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ð¸ÑполнÑемÑÑ Ñайлов на ÑазлиÑнÑÑ Ð¿Ð»Ð°ÑÑоÑÐ¼Ð°Ñ . ÐÑоме Ñого, upx поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑазлиÑнÑе ÑÐ¸Ð¿Ñ Ð¸ÑполнÑемÑÑ Ñайлов, Ñакие как ELF, PE, Mach-O и дÑÑгие. ÐÑо позволÑÐµÑ Ð¸ÑполÑзоваÑÑ ÐµÑ Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ð¿ÑогÑамм, ÑазÑабоÑаннÑÑ Ð½Ð° ÑазлиÑнÑÑ ÑзÑÐºÐ°Ñ Ð¿ÑогÑаммиÑованиÑ.
Ðажной оÑобенноÑÑÑÑ ÑеализаÑии ÑвлÑеÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð², коÑоÑÑе позволÑÑÑ ÑаÑÑиÑиÑÑ ÑÑнкÑионалÑноÑÑÑ ÑÑилиÑÑ Ð¸ добавиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ Ð½Ð¾Ð²ÑÑ ÑоÑмаÑов ÑжаÑÐ¸Ñ Ð¸Ð»Ð¸ Ñипов иÑполнÑемÑÑ Ñайлов. ÐÑо Ð´ÐµÐ»Ð°ÐµÑ upx гибким и ÑаÑÑиÑÑемÑм инÑÑÑÑменÑом, коÑоÑÑй можно адапÑиÑоваÑÑ Ðº конкÑеÑнÑм поÑÑебноÑÑÑм пÑоекÑа. РазÑабоÑка плагинов ÑÑебÑÐµÑ Ð·Ð½Ð°Ð½Ð¸Ñ ÑзÑка C и аÑÑ Ð¸ÑекÑÑÑÑ upx, но позволÑÐµÑ Ð·Ð½Ð°ÑиÑелÑно ÑаÑÑиÑиÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи ÑÑилиÑÑ.
| ФоÑÐ¼Ð°Ñ ÑжаÑÐ¸Ñ | СÑÐµÐ¿ÐµÐ½Ñ ÑжаÑÐ¸Ñ | СкоÑоÑÑÑ ÑжаÑÐ¸Ñ | СовмеÑÑимоÑÑÑ |
|---|---|---|---|
| UPX | СÑеднÑÑ | ÐÑÑÐ¾ÐºÐ°Ñ | ÐÑÑÐ¾ÐºÐ°Ñ |
| LZMA | ÐÑÑÐ¾ÐºÐ°Ñ | ÐÐ¸Ð·ÐºÐ°Ñ | СÑеднÑÑ |
| LZ4 | ÐÐ¸Ð·ÐºÐ°Ñ | ÐÑÐµÐ½Ñ Ð²ÑÑÐ¾ÐºÐ°Ñ | ÐÑÑÐ¾ÐºÐ°Ñ |
Ðз ÑаблиÑÑ Ð²Ð¸Ð´Ð½Ð¾, ÑÑо вÑÐ±Ð¾Ñ ÑоÑмаÑа ÑжаÑÐ¸Ñ Ð²Ñегда компÑомиÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑÑепенÑÑ ÑжаÑиÑ, ÑкоÑоÑÑÑÑ Ð¸ ÑовмеÑÑимоÑÑÑÑ. Ðажно ÑÑиÑÑваÑÑ ÑÑи ÑакÑоÑÑ Ð¿Ñи вÑбоÑе опÑималÑного ваÑианÑа.
ÐÑеимÑÑеÑÑва и недоÑÑаÑки иÑполÑзованиÑ
ÐÑполÑзование upx пÑедоÑÑавлÑÐµÑ ÑÑд пÑеимÑÑеÑÑв, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº ÑменÑÑение ÑазмеÑа иÑполнÑемÑÑ Ñайлов, ÑÐºÐ¾Ð½Ð¾Ð¼Ð¸Ñ Ð¼ÐµÑÑа на диÑке и пÑопÑÑкной ÑпоÑобноÑÑи ÑеÑи, а Ñакже повÑÑение безопаÑноÑÑи пÑогÑаммного обеÑпеÑениÑ. Ðднако, ÑÑÑеÑÑвÑÑÑ Ð¸ некоÑоÑÑе недоÑÑаÑки, коÑоÑÑе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑÑиÑÑваÑÑ. Ðдним из Ð½Ð¸Ñ ÑвлÑеÑÑÑ ÑвелиÑение вÑемени запÑÑка пÑогÑамм, поÑколÑÐºÑ ÑÑебÑеÑÑÑ Ð²ÑÐµÐ¼Ñ Ð½Ð° ÑаÑÐ¿Ð°ÐºÐ¾Ð²ÐºÑ ÑжаÑого Ñайла. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÐºÑиÑиÑнÑм Ð´Ð»Ñ Ð¿ÑогÑамм, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑÑо загÑÑжаÑÑÑÑ Ð¸ ÑеагиÑоваÑÑ Ð½Ð° дейÑÑÐ²Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ. ÐÑоме Ñого, некоÑоÑÑе анÑивиÑÑÑнÑе пÑогÑÐ°Ð¼Ð¼Ñ Ð¼Ð¾Ð³ÑÑ Ð¾ÑибоÑно опÑеделÑÑÑ ÑжаÑÑе ÑÐ°Ð¹Ð»Ñ ÐºÐ°Ðº вÑедоноÑнÑе, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к ложнÑм ÑÑабаÑÑваниÑм и блокиÑовке пÑогÑамм.
ÐеÑмоÑÑÑ Ð½Ð° ÑÑи недоÑÑаÑки, пÑеимÑÑеÑÑва иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ upx ÑаÑÑо пеÑевеÑиваÑÑ Ð½ÐµÐ´Ð¾ÑÑаÑки, оÑобенно Ð´Ð»Ñ Ð¿ÑогÑамм, коÑоÑÑе ÑаÑпÑоÑÑÑанÑÑÑÑÑ ÑеÑез инÑеÑÐ½ÐµÑ Ð¸Ð»Ð¸ ÑÑÑанавливаÑÑÑÑ Ð½Ð° ÑÑÑÑойÑÑÐ²Ð°Ñ Ñ Ð¾Ð³ÑаниÑеннÑми ÑеÑÑÑÑами. РболÑÑинÑÑве ÑлÑÑаев, ÑвелиÑение вÑемени запÑÑка пÑогÑамм незнаÑиÑелÑно и не оказÑÐ²Ð°ÐµÑ ÑÑÑеÑÑвенного влиÑÐ½Ð¸Ñ Ð½Ð° полÑзоваÑелÑÑкий опÑÑ. ЧÑо каÑаеÑÑÑ Ð»Ð¾Ð¶Ð½ÑÑ ÑÑабаÑÑваний анÑивиÑÑÑнÑÑ Ð¿ÑогÑамм, Ñо ÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑеÑиÑÑ Ð¿ÑÑем Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ÑклÑÑений Ð´Ð»Ñ ÑжаÑÑÑ Ñайлов или иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ ÑовÑеменнÑÑ Ð°Ð½ÑивиÑÑÑнÑÑ Ð¿ÑогÑамм, коÑоÑÑе лÑÑÑе ÑаÑпознаÑÑ ÑжаÑÑе иÑполнÑемÑе ÑайлÑ.
ÐлÑÑеÑнаÑивнÑе инÑÑÑÑменÑÑ Ð¸ ÑÑавнение
СÑÑеÑÑвÑÐµÑ ÑÑд алÑÑеÑнаÑивнÑÑ Ð¸Ð½ÑÑÑÑменÑов Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ð¸ÑполнÑемÑÑ Ñайлов, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº FreeCom, Aspack и дÑÑгие. ÐаждÑй из ÑÑÐ¸Ñ Ð¸Ð½ÑÑÑÑменÑов Ð¸Ð¼ÐµÐµÑ Ñвои пÑеимÑÑеÑÑва и недоÑÑаÑки, и вÑÐ±Ð¾Ñ Ð¾Ð¿ÑималÑного инÑÑÑÑменÑа завиÑÐ¸Ñ Ð¾Ñ ÐºÐ¾Ð½ÐºÑеÑнÑÑ ÑÑебований пÑоекÑа. ÐапÑимеÑ, FreeCom обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð²ÑÑокÑÑ ÑÑÐµÐ¿ÐµÐ½Ñ ÑжаÑиÑ, но Ð¸Ð¼ÐµÐµÑ Ð¾Ð³ÑаниÑеннÑÑ ÑовмеÑÑимоÑÑÑ Ñ ÑазлиÑнÑми Ñипами иÑполнÑемÑÑ Ñайлов. Aspack ÑвлÑеÑÑÑ Ð±Ð¾Ð»ÐµÐµ ÑнивеÑÑалÑнÑм инÑÑÑÑменÑом, но обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð¼ÐµÐ½ÑÑÑÑ ÑÑÐµÐ¿ÐµÐ½Ñ ÑжаÑиÑ, Ñем FreeCom. Ð Ñелом, upx ÑвлÑеÑÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ попÑлÑÑнÑм и ÑнивеÑÑалÑнÑм инÑÑÑÑменÑом Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ð¸ÑполнÑемÑÑ Ñайлов, благодаÑÑ Ñвоей вÑÑокой ÑовмеÑÑимоÑÑи, гибкоÑÑи и ÑаÑÑиÑÑемоÑÑи.
ÐÑакÑиÑеÑкое пÑименение и пÑимеÑÑ
ÐÑакÑиÑеÑкое пÑименение upx доÑÑаÑоÑно ÑиÑоко. Ðно иÑполÑзÑеÑÑÑ Ð² ÑазлиÑнÑÑ ÑÑеÑÐ°Ñ ÑазÑабоÑки пÑогÑаммного обеÑпеÑениÑ, вклÑÑÐ°Ñ ÑазÑабоÑÐºÑ Ð¸Ð³Ñ, ÑиÑÑемнÑÑ ÑÑилиÑ, ÑеÑвеÑнÑÑ Ð¿Ñиложений и дÑÑÐ³Ð¸Ñ . Ð ÑаÑÑноÑÑи, upx ÑаÑÑо иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ð¸ÑполнÑемÑÑ Ñайлов игÑ, ÑÑÐ¾Ð±Ñ ÑменÑÑиÑÑ ÑÐ°Ð·Ð¼ÐµÑ ÑÑÑановоÑного пакеÑа и ÑÑкоÑиÑÑ Ð·Ð°Ð³ÑÑÐ·ÐºÑ Ð¸Ð³ÑÑ. ÐÑоме Ñого, upx иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑжаÑÐ¸Ñ ÑиÑÑемнÑÑ ÑÑилиÑ, ÑÑÐ¾Ð±Ñ ÑÑкономиÑÑ Ð¼ÐµÑÑо на диÑке и ÑлÑÑÑиÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ ÑиÑÑемÑ. РоблаÑÑи ÑеÑвеÑнÑÑ Ð¿Ñиложений upx иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ð¸ÑполнÑемÑÑ Ñайлов ÑеÑвеÑов, ÑÑÐ¾Ð±Ñ ÑменÑÑиÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÐ¼Ð¾Ð³Ð¾ меÑÑа на диÑке и ÑÑкоÑиÑÑ Ð²ÑÐµÐ¼Ñ Ð·Ð°Ð¿ÑÑка ÑеÑвеÑа.
ÐÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ upx в командной ÑÑÑоке: upx –best file.exe. ÐÑа команда ÑÐ¶Ð¸Ð¼Ð°ÐµÑ Ñайл file.exe Ñ Ð¸ÑполÑзованием наилÑÑÑего алгоÑиÑма ÑжаÑиÑ. ÐоÑле ÑжаÑÐ¸Ñ ÑоздаеÑÑÑ Ð½Ð¾Ð²Ñй Ñайл file.upx, коÑоÑÑй Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÐ½ÑÑий ÑазмеÑ, Ñем иÑÑ Ð¾Ð´Ð½Ñй Ñайл. ÐÐ»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ñайла можно иÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ upxd file.upx. ÐÑоÑеÑÑ ÑжаÑÐ¸Ñ Ð¸ ÑаÑпаковки Ñайлов Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ upx доÑÑаÑоÑно пÑоÑÑ Ð¸ не ÑÑебÑÐµÑ ÑпеÑиалÑнÑÑ Ð·Ð½Ð°Ð½Ð¸Ð¹ или навÑков.
- ÐвÑомаÑиÑеÑкое ÑжаÑие иÑполнÑемÑÑ Ñайлов в пÑоÑеÑÑе ÑбоÑки пÑоекÑа.
- УменÑÑение ÑазмеÑа ÑÑÑановоÑнÑÑ Ð¿Ð°ÐºÐµÑов пÑогÑаммного обеÑпеÑениÑ.
- СжаÑие иÑполнÑемÑÑ Ñайлов Ð¸Ð³Ñ Ð´Ð»Ñ ÑÑкоÑÐµÐ½Ð¸Ñ Ð·Ð°Ð³ÑÑзки.
- ÐпÑимизаÑÐ¸Ñ ÑазмеÑа ÑеÑвеÑнÑÑ Ð¿Ñиложений Ð´Ð»Ñ Ñкономии меÑÑа на диÑке.
- ÐовÑÑение безопаÑноÑÑи пÑогÑаммного обеÑпеÑÐµÐ½Ð¸Ñ Ð·Ð° ÑÑÐµÑ Ð·Ð°ÑÑÑÐ´Ð½ÐµÐ½Ð¸Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð° иÑполнÑемÑÑ Ñайлов.
ÐÑполÑзование ÑÑÐ¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей позволÑÐµÑ Ð·Ð½Ð°ÑиÑелÑно опÑимизиÑоваÑÑ Ð¿ÑоÑеÑÑ ÑазÑабоÑки и ÑаÑпÑоÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¿ÑогÑаммного обеÑпеÑениÑ.
ÐпÑимизаÑÐ¸Ñ Ð¸ пÑодвинÑÑÑе ÑÐµÑ Ð½Ð¸ÐºÐ¸ ÑжаÑиÑ
ÐÐ»Ñ Ð´Ð¾ÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð°ÐºÑималÑной ÑÑепени ÑжаÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÑазлиÑнÑе ÑÐµÑ Ð½Ð¸ÐºÐ¸ опÑимизаÑии. ÐапÑимеÑ, пеÑед ÑжаÑием можно ÑдалиÑÑ Ð¸Ð· иÑполнÑемого Ñайла оÑладоÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¸ неиÑполÑзÑемÑе ÑеÑÑÑÑÑ. ÐÑоме Ñого, можно иÑполÑзоваÑÑ ÑпеÑиалÑнÑе инÑÑÑÑменÑÑ Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑии кода пÑогÑаммÑ, ÑÑÐ¾Ð±Ñ ÑменÑÑиÑÑ ÐµÐ³Ð¾ ÑÐ°Ð·Ð¼ÐµÑ Ð¸ ÑложноÑÑÑ. Также, можно иÑполÑзоваÑÑ ÑазлиÑнÑе паÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки upx, ÑÑÐ¾Ð±Ñ Ð½Ð°ÑÑÑоиÑÑ Ð¿ÑоÑеÑÑ ÑжаÑÐ¸Ñ Ð¸ добиÑÑÑÑ Ð½Ð°Ð¸Ð»ÑÑÑÐ¸Ñ ÑезÑлÑÑаÑов. ÐапÑимеÑ, паÑамеÑÑ –brute позволÑÐµÑ Ð¿ÐµÑебÑаÑÑ Ð²Ñе возможнÑе ваÑианÑÑ ÑжаÑÐ¸Ñ Ð¸ вÑбÑаÑÑ Ð¾Ð¿ÑималÑнÑй ваÑианÑ.
Ðажно оÑмеÑиÑÑ, ÑÑо опÑимизаÑÐ¸Ñ ÐºÐ¾Ð´Ð° пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ Ñдаление оÑладоÑной инÑоÑмаÑии Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð²Ð»Ð¸ÑÑÑ Ð½Ð° пÑоизводиÑелÑноÑÑÑ Ð¸ ÑÑабилÑноÑÑÑ Ð¿ÑогÑаммÑ. ÐоÑÑомÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑÑаÑелÑно ÑеÑÑиÑоваÑÑ ÑжаÑÑе ÑайлÑ, ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ, ÑÑо они ÑабоÑаÑÑ ÐºÐ¾ÑÑекÑно и не вÑзÑваÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ Ð¿Ñоблем. ÐÑоме Ñого, ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ ÑиÑÑÐµÐ¼Ñ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ñ Ð²ÐµÑÑий, ÑÑÐ¾Ð±Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑло веÑнÑÑÑÑÑ Ðº иÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÐºÐ¾Ð´Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð² ÑлÑÑае Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¿Ñоблем.
- Удаление оÑладоÑной инÑоÑмаÑии из иÑполнÑемого Ñайла.
- ÐпÑимизаÑÐ¸Ñ ÐºÐ¾Ð´Ð° пÑогÑÐ°Ð¼Ð¼Ñ Ð´Ð»Ñ ÑменÑÑÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ ÑазмеÑа.
- ÐÑполÑзование ÑпеÑиалÑнÑÑ Ð¸Ð½ÑÑÑÑменÑов Ð´Ð»Ñ ÑжаÑÐ¸Ñ ÑеÑÑÑÑов.
- ÐаÑÑÑойка паÑамеÑÑов командной ÑÑÑоки upx Ð´Ð»Ñ Ð´Ð¾ÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ð½Ð°Ð¸Ð»ÑÑÑÐ¸Ñ ÑезÑлÑÑаÑов.
- ТÑаÑелÑное ÑеÑÑиÑование ÑжаÑÑÑ Ñайлов.
СоблÑдение ÑÑÐ¸Ñ ÑекомендаÑий Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð´Ð¾Ð±Ð¸ÑÑÑÑ Ð¼Ð°ÐºÑималÑной ÑÑепени ÑжаÑÐ¸Ñ Ð¸ опÑимизиÑоваÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ Ð¿ÑогÑаммного обеÑпеÑениÑ.
ÐеÑÑпекÑÐ¸Ð²Ñ ÑазвиÑÐ¸Ñ Ð¸ новÑе гоÑизонÑÑ
РазвиÑие ÑÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ð¹ ÑжаÑÐ¸Ñ Ð½Ðµ ÑÑÐ¾Ð¸Ñ Ð½Ð° меÑÑе, и в бÑдÑÑем можно ожидаÑÑ Ð¿Ð¾ÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²ÑÑ Ð°Ð»Ð³Ð¾ÑиÑмов и инÑÑÑÑменÑов, коÑоÑÑе позволÑÑ ÐµÑе болÑÑе ÑменÑÑиÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¸ÑполнÑемÑÑ Ñайлов. ÐапÑимеÑ, ÑазÑабаÑÑваÑÑÑÑ Ð½Ð¾Ð²Ñе алгоÑиÑÐ¼Ñ ÑжаÑиÑ, оÑнованнÑе на нейÑоннÑÑ ÑеÑÑÑ Ð¸ маÑинном обÑÑении, коÑоÑÑе обеÑаÑÑ Ð¾Ð±ÐµÑпеÑиÑÑ Ð±Ð¾Ð»ÐµÐµ вÑÑокÑÑ ÑÑÐµÐ¿ÐµÐ½Ñ ÑжаÑиÑ, Ñем ÑÑÑеÑÑвÑÑÑие алгоÑиÑмÑ. ÐÑоме Ñого, ÑазÑабаÑÑваÑÑÑÑ Ð½Ð¾Ð²Ñе инÑÑÑÑменÑÑ Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкой опÑимизаÑии кода пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ¸ÑполÑзÑемÑÑ ÑеÑÑÑÑов. ÐÑи инÑÑÑÑменÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑ ÑпÑоÑÑиÑÑ Ð¿ÑоÑеÑÑ Ð¾Ð¿ÑимизаÑии и добиÑÑÑÑ Ð»ÑÑÑÐ¸Ñ ÑезÑлÑÑаÑов.
РбÑдÑÑем upx, веÑоÑÑно, бÑÐ´ÐµÑ Ð¸Ð½ÑегÑиÑована в ÑиÑÑÐµÐ¼Ñ ÑбоÑки пÑоекÑов, ÑÑо Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð°Ð²ÑомаÑиÑеÑки ÑжимаÑÑ Ð¸ÑполнÑемÑе ÑÐ°Ð¹Ð»Ñ Ð¿Ñи каждом изменении кода. ÐÑо ÑпÑоÑÑÐ¸Ñ Ð¿ÑоÑеÑÑ ÑазÑабоÑки и Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð¾Ð¿ÑималÑнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¸ÑполнÑемÑÑ Ñайлов без дополниÑелÑнÑÑ ÑÑилий. Также, можно ожидаÑÑ Ð¿Ð¾ÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²ÑÑ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð² Ð´Ð»Ñ upx, коÑоÑÑе добавÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ Ð½Ð¾Ð²ÑÑ ÑоÑмаÑов ÑжаÑÐ¸Ñ Ð¸ Ñипов иÑполнÑемÑÑ Ñайлов. РазвиÑие ÑÑого инÑÑÑÑменÑа бÑÐ´ÐµÑ Ð¿ÑодолжаÑÑÑÑ, ÑÑÐ¾Ð±Ñ ÑооÑвеÑÑÑвоваÑÑ ÑаÑÑÑÑим ÑÑебованиÑм к опÑимизаÑии пÑогÑаммного обеÑпеÑениÑ.