UPX v5.3.0 便携版下载(压缩EXE与DLL的命令行工具)
UPX 全称 Ultimate Packer for eXecutables,是一个开源的可执行文件压缩工具,GPL 授权,商用也不收费。它的做法是把程序里的代码段和数据段压小,再在文件头接一段自解压代码,程序启动时先把内容解到内存再执行,所以压缩过的程序不需要额外解压步骤就能直接跑起来。
它只处理编译好的二进制文件,不碰文档、图片这类普通数据。Windows 下的 EXE、DLL、SYS,Linux 下的 ELF,以及 macOS 的 Mach-O,都在它的处理范围内。常见用途有两个:给便携软件、绿色软件瘦身,或者把安装包和更新包做小一点,减少下载和分发的时间。
Windows 版本没有窗口,没有安装向导,也没有图形界面。解压出来就是一个命令行程序,在 CMD 或 PowerShell 里带参数调用。它不写注册表、不往系统目录塞文件,用完把目录删掉就算清干净了。分 64 位与 32 位两种架构,系统是哪种就取哪种对应版本。
截图预览
功能亮点
- 压缩后可直接运行:被压缩的程序照常启动,解压在内存中完成,最终用户不需要知道文件被压过。
- 格式与架构覆盖广:PE、ELF、Mach-O 等可执行格式都能处理,x86、x64、ARM 等常见架构均有支持。
- 操作可逆:加
-d参数就能还原,还原结果与原文件逐字节一致,压缩过程不丢内容。 - 能看压缩状态:用
-l可以查看文件是否已被压过、用的什么算法、压掉了多少比例,排查问题时很有用。 - 源码公开:代码托管在 GitHub,任何人可以自行审计或编译,不存在来路不明的行为。
性能优化
- 启动多一次解压:程序启动时要先把内容解到内存,比未压缩时多一点点耗时,常规体量的程序基本感觉不到;特别大的程序会稍微明显一些。
- 压缩级别可调:
-1到-9控制投入的压缩力度,级别越高耗时越长、结果越小。批量处理时可以先用低级别试,只对体积敏感的那几个文件上高级别。 - 重复执行不重复压:已经压过的文件会被识别并跳过,同一个目录反复跑不会越来越小,也不会把文件压坏。
- 资源占用与文件同量级:单文件处理,内存占用大致跟被处理文件的大小相当,普通机器跑得动。
使用说明
- 把压缩包解压到任意目录,路径里尽量不要有空格和中文,省得命令行里要处理引号。
- 在该目录打开 CMD 或 PowerShell,或者把目录加进 PATH,之后就能直接调用。
- 压缩单个文件:
upx 目标程序.exe。想保留原文件就加-o指定输出路径,别覆盖原文件。 - 还原:
upx -d 被压缩的程序.exe。查看状态:upx -l 文件。 - 批量处理可以直接给通配符,或者把文件列表传给
-f指定的清单文件。 - 动手前先备份原始文件。压缩会改写文件本身,出问题时没有原文件就只能重新编译。
有几点容易被忽略。带数字签名的程序压完之后签名就失效了,系统和部分软件会因此拒绝加载;.NET 程序、自带完整性校验的程序,压完也可能跑不起来。这类文件建议直接跳过,不要硬压。
常见问题
压缩后会被杀毒软件报毒吗?
会。UPX 的壳特征曾被大量恶意程序滥用,很多杀软见到这个头就直接拦。绝大多数是误报,但发给别人时最好提前说明,或者只压自己的程序。
压完程序打不开了怎么办?
先用 -d 还原,确认原文件是否正常。常见原因是数字签名被破坏、程序自带校验,或者本身就是 .NET 程序。换回原始文件即可,不影响系统。
有图形界面或安装程序吗?
都没有。它就是一个命令行工具,解压即用,功能全在参数里。不习惯命令行的话,第一次用需要查一下参数说明。
能压缩压缩包或视频吗?
不能。它只认可执行文件格式,对已经压缩过的数据也压不动。给文档、图片、视频瘦身是 7-Zip 这类归档工具的事。
能不能用它让程序躲过杀毒检测?
不建议,也不该这么做。加壳会破坏签名、干扰安全软件判断,正常软件不需要靠这个藏起来,反而会给自己招来误报和信任问题。
更新日志
v5.3.0
- 版本号与上游 GitHub 发布保持一致。
- 该版本的具体改动以官方发布说明为准。






