首页 > 其他分享 >【转】使用 UPX 压缩可执行文件

【转】使用 UPX 压缩可执行文件

时间:2022-12-15 16:22:18浏览次数:67  
标签:可执行文件 文件 UPX 压缩 upx 使用

URL:https://cloud.tencent.com/developer/article/1997890

使用 UPX 压缩可执行文件

发布于2022-05-09 20:34:03阅读 1.4K0  

UPX 可以有效地对可执行文件进行压缩,并且压缩后的文件可以直接由系统执行,支持多系统和平台。 使用 UPX 来压缩可执行文件是一种减少发布包大小的有效方式。

安装

使用

压缩

upx [options] yourfile

upx 对文件的默认操作即为压缩,使用上述命令会使用默认参数压缩并替换文件 yourfile。 upx 支持如下可选参数:

  • -1[23456789]:不同的压缩级别,数值越高压缩率越高,但耗时更长。对于小于 512 KiB 的文件默认使用 -8,其他的默认为 -7
    • --best:最高压缩级别
    • --brute:尝试使用各种压缩方式来获取最高压缩比
    • --ultra-brute:尝试使用更多的参数来获取更高的压缩比
  • -o [file]:将压缩文件保存为 [file]

解压

upx -d [yourfile]

优劣

压缩的程序占用更少的硬盘空间,但会在打开时消耗更多的 CPU 资源,在运行时占用更多的内存(或 swap 空间、/tmp 存储等)。

优点

  • UPX 可以压缩各种类型的可执行文件
  • 压缩后的文件可以直接由操作系统执行
  • 压缩过程不会修改源文件,也就意味着解压后直接可以得到原始文件
  • 不会产生额外的动态库调用

缺点

  • 运行的程序不会共享数据段(汇编),所以多实例运行的程序不适合压缩
  • 使用 ldd 和 size 命令无法获取到程序的有效信息

原理

为什么压缩后的文件可由系统直接执行?

UPX 将程序压缩,并在头部加入解压的程序,具体的原理可以参看参考[2]。 在 Linux 系统中可以使用 strings 命令查看可执行文件的内容,通过查看 UPX 压缩后的程序可以看到,UPX 在文件中写入了自己的特征码。

参考

  1. UPX manual
  2. Packers, How They Work, Featuring UPX

标签:可执行文件,文件,UPX,压缩,upx,使用
From: https://www.cnblogs.com/huangliujing/p/16985339.html

相关文章

  • PHP 执行系统命令解压7z格式压缩包
    银行推送的账单是7z格式的压缩包,需要用程序对账单进行解压,网上关系PHP解压7z格式压缩包的资料很少现在分享下处理过程,首先安装7-zip软件,我是在windows环境下调试的,下载地......
  • 再论Mac OS下如何将shell可执行文件转换成直接运行的APP?
    今天看见一个更加直接的转换方法,转载到这里来备份下,后续有需要可以实践一下,不过看其方法是比较完整和实用的。fan'yi是否曾经想到过让应用程序直接运行而不是多个shell命令?......
  • 如何压缩文件
         Dev-c++        欣赏的人。孙俪。鲍蕾。关注自己欣赏的人。 ......
  • Python数据压缩和存档——zlib/gzip/bzip2/lzma/zip/tar
    Python数据压缩和存档——zlib/gzip/bzip2/lzma/zip/tar​前言python中提供了几种重要的数据压缩算法的支持,包括zlib、gzip、bzip2和lzma数据压缩算法,同时支持创建ZIP......
  • 每天进步一点点《SVD用于压缩》
    详情请参考附件,站内搜索每天进步一点点《SVD用于压缩》今天给大家分享一个SVD用于数据压缩的例子。还是以图片作为距离,图片是有M*N个像素点组成的,在县线性代数中可以将......
  • Powershell 压缩文件
    如何使用PowerShell压缩文件 它使用您要压缩的任何文件的路径(多个文件用逗号分隔),并将它们存档在您指定的目标位置。Compress-Archive-LiteralPath<PathToFiles>-D......
  • 如何通过Java应用程序压缩PDF文档
     PDF文档是我们日常办公中使用最频繁的文档格式。但因为大多数PDF文档都包含很多页面图像或大量图片,这就导致PDF文档过大,处理起来较为麻烦。PDF文件过大,就会导致传输或者......
  • ASP在线压缩RAR文件
    1.要壓中文檔名,須下載中文版WinRAR,安裝後,再將其中的rar.exe複製出來2.網路執行,必須將rar.exe與被壓縮的檔案(或資料夾)置於相同目錄下(網路執行壓縮不支援相對路徑,如果使......
  • Python3,3行代码,我把120M图片压缩到40M,从此再也不怕图片上传限制了。
    图片压缩方式​​1、引言​​​​2、PIL模块​​​​2.1quality方式​​​​2.1.1普通图片压缩​​​​2.1.2超大图片压缩​​​​2.2thumbnail方式​​​​3、OpenCV......
  • codeforces 596 div2 p-binary(数位复杂度压缩)
    题目大意:已知: 同时  ,问k最少为多少。解题思路:首先,我们看到这里有2的n次方,我们考虑能不能从二进制表示下手,我们通过移位来表示:得到公式 ,很直接的想法是我们让k从小到大......