fbpx
维基百科

UPX

UPX(英語:the Ultimate Packer for eXecutables)是一个自由开源的可执行程序文件加壳器,支持许多不同操作系统下的可执行文件格式。

UPX
the Ultimate Packer for eXecutables
首次发布1998年5月26日,​25年前​(1998-05-26
当前版本
  • 4.1.0 (2023年8月8日;穩定版本)[1]
源代码库
  • github.com/upx/upx
编程语言C++汇编
操作系统WindowsLinuxDOSAtari TOSmacOS
类型可执行文件压缩
许可协议GPL
网站upx.github.io

压缩 编辑

UPX使用一种叫做UCL的压缩演算法,為NRV(Not Really Vanished)演算法的一个开源部分實做。

得益于UCL的简单设计,其解压缩程式碼只需要额外的数百位元組。UCL最大的好处是在解压缩过程中不需要额外的記憶體,意味着经过UPX压缩的可执行文件执行时通常也不需要为了解压缩付出额外記憶體。

UPX(从2.90 beta版本开始)可以在大多数平台上使用LZMA演算法,但因为速度慢,在16位元平台上LZMA演算法預設被停止使用。(可以使用参数--lzma强制使用)。

从版本3.91开始,UPX在Windows平台上还支持64位(x64)可执行文件。此功能目前宣布为实验性。

解压缩 编辑

UPX支持两种解压方式:就地解压或解压至临时文件夹。

就地解压方法会直接把可执行文件提取到內存。但这种方式不可能支持所有系统平台,因此在必要之时UPX会使用另一种解压方式:將压缩文件提取到临时文件夾。这种方式支持封装任何平台和格式的可执行文件,可执行文件往往先会被提取到一个位置,之后用open()打开。

然而提取到临时文件夹这种方式除了造成了额外占用之外,还有以下几个缺点:

  • 特殊权限会被忽略,如设置用户标识符。
  • argv[0](即程序中获取到的可执行文件名)将会无效。
  • 多实例应用程序将无法共享共同的程序部分(如内存内的相同代码)。

未特意以防止解包为目的修改过的UPX包通常能够被杀毒软件识别并进行解压操作。UPX也内置能够解压未修改UPX包的功能。在默认的UPX许可证中也明确禁止以防止前文所提及的解包为目的的修改。

支持的格式 编辑

UPX目前[何时?]不支持为了在.NET Framework.运行而包含了 CIL代码的Windows/PE EXE 文件。

注释 编辑

  1. ^ UPX对DOS .COM风格的文件的压缩支持可以扩展到一些其它类似的二进制文件中去。一些FreeDOS 和 EDR-DOS内核文件已经被证实可以进行UPX压缩。
  2. ^ UPX也可以压缩不可执行的二进制文件,只要使用它们的程序或驱动能够识别它们是由UPX压缩并且能够执行在文件中包含的解压缩代码即可。已知的例子是FreeDOS使用的.CPX文件以及被UPX压缩过的.CPI字体文件。
  3. ^ 3.0 3.1 3.2 对于DOS平台,UPX支持特殊选项-8086,以强制嵌入式解压缩器与Intel 8088/8086处理器兼容,这样做之后即使在运行DOS的最早的PC上也可以执行和解压缩压缩文件。

參考資料 编辑

  1. ^ Release 4.1.0. 2023年8月8日 [2023年9月19日]. 
  2. ^ 存档副本. [2018-01-30]. (原始内容于2022-01-11). 
  3. ^ 存档副本. [2018-01-30]. (原始内容于2018-10-05). 

外部链接 编辑

  • UPX: the Ultimate Packer for eXecutables (页面存档备份,存于互联网档案馆
  • UCL
  • NRV
  • SourceForge.net上的UPX - a powerful executable packer
  • Freecode英语Freecode上的UPX

此條目需要补充更多来源, 2020年8月18日, 请协助補充多方面可靠来源以改善这篇条目, 无法查证的内容可能會因為异议提出而被移除, 致使用者, 请搜索一下条目的标题, 来源搜索, 网页, 新闻, 书籍, 学术, 图像, 以检查网络上是否存在该主题的更多可靠来源, 判定指引, 英語, ultimate, packer, executables, 是一个自由开源的可执行程序文件加壳器, 支持许多不同操作系统下的可执行文件格式, ultimate, packer, executables首次发布1998年5月26日,. 此條目需要补充更多来源 2020年8月18日 请协助補充多方面可靠来源以改善这篇条目 无法查证的内容可能會因為异议提出而被移除 致使用者 请搜索一下条目的标题 来源搜索 UPX 网页 新闻 书籍 学术 图像 以检查网络上是否存在该主题的更多可靠来源 判定指引 UPX 英語 the Ultimate Packer for eXecutables 是一个自由开源的可执行程序文件加壳器 支持许多不同操作系统下的可执行文件格式 UPXthe Ultimate Packer for eXecutables首次发布1998年5月26日 25年前 1998 05 26 当前版本4 1 0 2023年8月8日 穩定版本 1 源代码库github wbr com wbr upx wbr upx编程语言C 汇编操作系统Windows Linux DOS Atari TOS macOS类型可执行文件压缩许可协议GPL网站upx github io 目录 1 压缩 2 解压缩 3 支持的格式 4 注释 5 參考資料 6 外部链接压缩 编辑UPX使用一种叫做UCL的压缩演算法 為NRV Not Really Vanished 演算法的一个开源部分實做 得益于UCL的简单设计 其解压缩程式碼只需要额外的数百位元組 UCL最大的好处是在解压缩过程中不需要额外的記憶體 意味着经过UPX压缩的可执行文件执行时通常也不需要为了解压缩付出额外記憶體 UPX 从2 90 beta版本开始 可以在大多数平台上使用LZMA演算法 但因为速度慢 在16位元平台上LZMA演算法預設被停止使用 可以使用参数 lzma强制使用 从版本3 91开始 UPX在Windows平台上还支持64位 x64 可执行文件 此功能目前宣布为实验性 解压缩 编辑UPX支持两种解压方式 就地解压或解压至临时文件夹 就地解压方法会直接把可执行文件提取到內存 但这种方式不可能支持所有系统平台 因此在必要之时UPX会使用另一种解压方式 將压缩文件提取到临时文件夾 这种方式支持封装任何平台和格式的可执行文件 可执行文件往往先会被提取到一个位置 之后用open 打开 然而提取到临时文件夹这种方式除了造成了额外占用之外 还有以下几个缺点 特殊权限会被忽略 如设置用户标识符 argv 0 即程序中获取到的可执行文件名 将会无效 多实例应用程序将无法共享共同的程序部分 如内存内的相同代码 未特意以防止解包为目的修改过的UPX包通常能够被杀毒软件识别并进行解压操作 UPX也内置能够解压未修改UPX包的功能 在默认的UPX许可证中也明确禁止以防止前文所提及的解包为目的的修改 支持的格式 编辑ARM PE Atari TOS BSD i386 DJGPP2 COFF DOS COM 包括某些其它二进制映像 nb 1 nb 2 nb 3 DOS EXE nb 3 DOS SYS nb 3 Linux i386 a out Linux ELF 位于 i386 x86 64 ARM PowerPC平台 Linux kernel 位于i386 x86 64 and ARM平台 Mach O ppc32 Mach O i386 自3 09版本后还支持Google Go创建的此格式程序 rtm32 PE 如 Borland C Pascal compilers 2 编译的程序 tmt adam 如the TMT Pascal compiler 3 编译的程序 PlayStation1 EXE Watcom LE DOS4G PMODE W DOS32A 和 CauseWay 包含x86 32 Bit 代码的Windows PE EXE 文件 包含AMD64 64 Bit 代码的Windows PE EXE 文件 实验性的 UPX目前 何时 不支持为了在 NET Framework 运行而包含了 CIL代码的Windows PE EXE 文件 注释 编辑 UPX对DOS COM风格的文件的压缩支持可以扩展到一些其它类似的二进制文件中去 一些FreeDOS 和 EDR DOS内核文件已经被证实可以进行UPX压缩 UPX也可以压缩不可执行的二进制文件 只要使用它们的程序或驱动能够识别它们是由UPX压缩并且能够执行在文件中包含的解压缩代码即可 已知的例子是FreeDOS使用的 CPX文件以及被UPX压缩过的 CPI字体文件 3 0 3 1 3 2 对于DOS平台 UPX支持特殊选项 8086 以强制嵌入式解压缩器与Intel 8088 8086处理器兼容 这样做之后即使在运行DOS的最早的PC上也可以执行和解压缩压缩文件 參考資料 编辑 Release 4 1 0 2023年8月8日 2023年9月19日 存档副本 2018 01 30 原始内容存档于2022 01 11 存档副本 2018 01 30 原始内容存档于2018 10 05 外部链接 编辑 nbsp 自由軟件主题 UPX the Ultimate Packer for eXecutables 页面存档备份 存于互联网档案馆 UCL NRV SourceForge net上的UPX a powerful executable packer Freecode 英语 Freecode 上的UPX 取自 https zh wikipedia org w index php title UPX amp oldid 75412455, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。