x-cmd pkg | upx - 一个开源的可执行文件压缩工具
·
upx - 开源的可执行文件压缩工具
1. 简介
UPX(全称: Ultimate Packer for eXecutables),是一个开源的可执行文件压缩工具。它的主要目的是将可执行文件和共享库(通常是二进制文件)压缩为更小的尺寸,从而减少磁盘占用空间和下载时间。
UPX 采用无损压缩技术,可以在不影响可执行文件的功能的情况下(压缩后的文件仍可直接执行)减小文件的大小。它通常用于减小应用程序、二进制文件或脚本的大小,特别是在需要分发或传输这些文件时,以减少带宽和存储成本。
2. 基本用法
2.1 首次用户
-
使用
x upx
即可自动下载并使用 -
x-cmd 提供1分钟教程,其中包含了 upx 命令常用功能的 demo 示例,可以帮你快速上手 upx 。
2.2 使用示例
- 压缩 ls 可执行文件为 als 文件。(als 文件仍可直接执行)
命令格式:x upx <需要压缩的可执行文件路径> -o <压缩后的保存路径>
$ /bin/ls
$ x upx /bin/ls -o als
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2023
UPX 4.0.2 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 30th 2023
File size Ratio Format Name
-------------------- ------ ----------- -----------
141880 -> 61992 43.69% linux/amd64 als
Packed 1 file.
$ ./als
- 使用
-l
或-t
选项判别文件是否经过 upx 压缩。
命令格式:x upx -l <文件路径>
以-l
功能选项为例,对于未经过 upx 压缩的文件(如 /bin/ls ),会有如下提示(/bin/ls: NotPackedException: not packed by UPX)。
$ x upx -l /bin/ls als
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2023
UPX 4.0.2 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 30th 2023
File size Ratio Format Name
-------------------- ------ ----------- -----------
upx: /bin/ls: NotPackedException: not packed by UPX
141880 -> 61992 43.69% linux/amd64 als
- 使用
-d
选项可以还原经过 upx 压缩的文件。
命令格式:x upx -d <文件路径>
$ x upx -d als
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2023
UPX 4.0.2 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 30th 2023
File size Ratio Format Name
-------------------- ------ ----------- -----------
146975 <- 61992 42.18% linux/amd64 als
Unpacked 1 file.
3. 功能特点
3.1 多平台可执行文件压缩与高速解压
- 支持压缩和解压各种不同平台和架构下的可执行文:支持列表
- UPX 提供出色的解压速度,在Pentium 133 (英特尔90年代末的一款主流桌面计算机处理器)上,解压速度大约为 10 MiB/秒,在 Athlon XP 2000+ (AMD的一款cpu于2002年6月发布)上,解压速度大约为 200 MiB/秒。来源
3.2 卓越的压缩性能和可扩展性
- UPX 团队宣称其在压缩方面优于 zip 和 gzip,通常可以将程序和DLL文件的大小减小约50%-70%。来源
- UPX 使用类布局(class layout),支持轻松添加新的可执行文件格式或压缩算法。
4. 竞品和相关作品
- PECompact 是一个用于压缩 Windows 可执行文件的工具,它可以减小可执行文件的大小,并提供了一些保护选项。
5. 进一步阅读
更多推荐
已为社区贡献9条内容
所有评论(0)