注册 登录

清河洛

UPX压缩加壳用法

qingheluo2024-01-02清河洛835
UPX 全称是 "Ultimate Packer for eXecutables",是一个免费、开源、编写、可扩展、高性能的可执行程序打包程序开源项目的地址:https://github.com/upx/upx主要的功能是将可执行的二进制程序、动态链接库和其他的二进制文件压缩为更小的体积,从而减少磁盘空间占用、降低网络传输所需带宽、以及分发成本UPX通常可以将文件大小减少50% - 70%UPX除了压缩功能之外,还有另一个主要作用就是加壳。既将可执行程序的外部再包一层外壳程序,并在运行时使用外壳程序将实际的程序来解压运行UPX可以跨平台压缩,可以在Windows的开发平台上压缩Linux...

UPX 全称是 "Ultimate Packer for eXecutables",是一个免费、开源、编写、可扩展、高性能的可执行程序打包程序

开源项目的地址:https://github.com/upx/upx

主要的功能是将可执行的二进制程序、动态链接库和其他的二进制文件压缩为更小的体积,从而减少磁盘空间占用、降低网络传输所需带宽、以及分发成本

UPX通常可以将文件大小减少50% - 70%

UPX除了压缩功能之外,还有另一个主要作用就是加壳。既将可执行程序的外部再包一层外壳程序,并在运行时使用外壳程序将实际的程序来解压运行

UPX可以跨平台压缩,可以在Windows的开发平台上压缩Linux平台的可执行程序

UPX的使用格式:upx [选项] 待压缩的文件

压缩级别参数

默认级别: 当不指定压缩级别参数会使用次选项
         通常是一个压缩比和消耗时间的中间选项,经测试大约为-7级别
-1 ~ -9: -1 到 -9 压缩级别
         -1 最低级别压缩,-9 最高级别压缩
         级别越高压缩比越高(压缩后体积越小),但压缩所需时间也会更长
--brute: 高级别的压缩选项,类似于 -9
         但压缩的过程中会使用更多的压缩技巧,可能会导致更长的压缩时间
--ultra-brute: 最高级别的压缩,使用最激进的压缩算法,尽可能的减小文件大小
         需要更长的压缩时间,且运行时所需的解压时间也会增加
--best:  使用最佳压缩结果的选项
         通常效果等于 -9 或者 --ultra-brute
--fast:  使用最快压缩速度的选项,通常效果等于 -1 或者 -2
--lzma:  使用 LZMA 算法进行压缩,可以获得比较高的压缩比
         不会有 --ultra-brute 那么激进,且通常比 -9 更快
-f/--force   : 用于强制压缩,即使 UPX 认为此文件不适合压缩。
--all-filters: 尝试所有可用的压缩算法,以尝试找到最佳的压缩组合
         测试感觉和默认差不多

其他参数

-o              :指定压缩后输出文件名,默认覆盖原始文件
-l/--list       :列出压缩过的文件信息,例如压缩比例、文件大小等
-q/--quiet      :安静模式,减少输出信息,在批处理或自动化的过程中使用
-v/--verbose    :启用详细输出,显示有关压缩进程的详细信息
-t/--test       :测试压缩程序是否能正常的解压缩或运行,不会进行实际操作
-k/--backup     :备份保留原始文件
--no-backup    :不进行备份保留原始文件,默认值
--threads       :指定用于压缩的线程数,默认与CPU核心数量相等
-d/--decompress:用于解压还原已经被 UPX 压缩的文件
-V              : 显示upx的版本号
-L:            :显示upx软件许可证
-h/--help       :显示帮助信息

文件信息

--overlay=copy  :复制附加到文件的任何额外数据,默认值
--overlay=strip :剥去附加到文件的任何额外数据,危险
--overlay=skip  :不使用覆盖压缩文件

--force-overwrite:强制覆盖输出文件
--no-mode        :不保留任何文件权限信息
--no-owner       :不保留文件所有者信息
--no-time        :不保留文件时间戳信息

--coff          :生成coff输出,默认EXE
--le            :生成le输出,默认EXE


网址导航