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