<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=UPX</id>
	<title>UPX - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=UPX"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=UPX&amp;action=history"/>
	<updated>2026-07-15T03:25:05Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=UPX&amp;diff=537409&amp;oldid=prev</id>
		<title>imported&gt;Willy1018-bot：​BOTR：批量替換所有lang-xx模板為langx模板( V6.4.0.1 )</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=UPX&amp;diff=537409&amp;oldid=prev"/>
		<updated>2025-07-04T08:28:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/%E6%9C%BA%E5%99%A8%E4%BA%BA/%E4%BD%9C%E4%B8%9A%E8%AF%B7%E6%B1%82#.E8.AB.8B.E6.B1.82.E6.89.B9.E9.87.8F.E6.9B.BF.E6.8F.9B.E6.89.80.E6.9C.89lang-xx.E6.A8.A1.E6.9D.BF.E7.82.BAlangx.E6.A8.A1.E6.9D.BF&quot; class=&quot;extiw&quot; title=&quot;wikipedia:机器人/作业请求&quot;&gt;BOTR&lt;/a&gt;：批量替換所有lang-xx模板為langx模板( V6.4.0.1 )&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Refimprove|time=2020-08-18T19:47:40+00:00}}&lt;br /&gt;
{{NoteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox Software&lt;br /&gt;
| name = UPX&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;&amp;#039;&amp;#039;the Ultimate Packer for eXecutables&amp;#039;&amp;#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
| logo = &lt;br /&gt;
| screenshot = File:UPX screenshot.png&lt;br /&gt;
| caption = &lt;br /&gt;
| collapsible = &lt;br /&gt;
| author = &lt;br /&gt;
| developer = &lt;br /&gt;
| released = {{Start date and age|1998|05|26}}&lt;br /&gt;
| latest release version = 3.96&lt;br /&gt;
| latest release date = {{Start date and age|2020|01|23}}&lt;br /&gt;
| latest preview version = &lt;br /&gt;
| latest preview date = &lt;br /&gt;
| frequently updated = &lt;br /&gt;
| programming language = [[C++]]、[[汇编语言|汇编]]&lt;br /&gt;
| operating system = [[Microsoft Windows|Windows]]、[[Linux]]、[[DOS]]、[[Atari|Atari TOS]]、[[macOS]]&lt;br /&gt;
| platform = &lt;br /&gt;
| language = &lt;br /&gt;
| status = &lt;br /&gt;
| genre = [[可执行文件压缩]]&lt;br /&gt;
| license = [[GNU General Public License|GPL]]&lt;br /&gt;
| website = [https://upx.github.io/ upx.github.io]&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;UPX&amp;#039;&amp;#039;&amp;#039;（{{langx|en|the &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;ltimate &amp;#039;&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;#039;acker for e&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;ecutables}}）是一个[[自由开源]]的可执行程序文件加壳器，支持许多不同[[操作系统]]下的可执行文件格式。&lt;br /&gt;
&lt;br /&gt;
== 压缩 ==&lt;br /&gt;
&lt;br /&gt;
UPX使用一种叫做UCL的压缩演算法，為NRV（{{lang|en|&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;ot &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;eally &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;anished}}）演算法的一个开源部分實做。&lt;br /&gt;
&lt;br /&gt;
得益于UCL的简单设计，其解压缩程式碼只需要额外的数百位元組。UCL最大的好处是在解压缩过程中不需要额外的記憶體，意味着经过UPX压缩的可执行文件执行时通常也不需要为了解压缩付出额外記憶體。&lt;br /&gt;
&lt;br /&gt;
UPX（从2.90 beta版本开始）可以在大多数平台上使用[[LZMA]]演算法，但因为速度慢，在16位元平台上LZMA演算法預設被停止使用。（可以使用参数—lzma强制使用）。&lt;br /&gt;
&lt;br /&gt;
从版本3.91开始，UPX在Windows平台上还支持64位（x64）可执行文件。此功能目前宣布为实验性。&lt;br /&gt;
&lt;br /&gt;
== 解压缩 ==&lt;br /&gt;
&lt;br /&gt;
UPX支持两种解压方式：就地解压或解压至临时文件夹。&lt;br /&gt;
&lt;br /&gt;
就地解压方法会直接把可执行文件提取到[[內存]]。但这种方式不可能支持所有系统平台，因此在必要之时UPX会使用另一种解压方式：將压缩文件提取到临时文件夾。这种方式支持封装任何平台和格式的可执行文件，可执行文件往往先会被提取到一个位置，之后用&amp;lt;code&amp;gt;open()&amp;lt;/code&amp;gt;打开。&lt;br /&gt;
&lt;br /&gt;
然而提取到临时文件夹这种方式除了造成了额外占用之外，还有以下几个缺点：&lt;br /&gt;
* 特殊权限会被忽略，如设置用户标识符。&lt;br /&gt;
* [[命令行|argv[0]]]（即程序中获取到的可执行文件名）将会无效。&lt;br /&gt;
* 多实例应用程序将无法共享共同的程序部分（如内存内的相同代码）。&lt;br /&gt;
&lt;br /&gt;
未特意以防止解包为目的修改过的UPX包通常能够被[[杀毒软件]]识别并进行解压操作。UPX也内置能够解压未修改UPX包的功能。在默认的UPX许可证中也明确禁止以防止前文所提及的解包为目的的修改。&lt;br /&gt;
&lt;br /&gt;
== 支持的格式 ==&lt;br /&gt;
&lt;br /&gt;
* [[ARM architecture|ARM]]/[[Portable Executable|PE]]&lt;br /&gt;
* [[Atari]]/[[Atari TOS|TOS]]&lt;br /&gt;
* *[[BSD]]/[[i386]]&lt;br /&gt;
* [[DJGPP2]]/[[COFF]]&lt;br /&gt;
* [[DOS]]/[[COM格式|COM]] (包括某些其它二进制映像&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;UPX-images&amp;quot;/&amp;gt;&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;UPX-data&amp;quot;/&amp;gt;)&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;UPX-8086&amp;quot;/&amp;gt;&lt;br /&gt;
* DOS/[[EXE格式|EXE]]&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;UPX-8086&amp;quot;/&amp;gt;&lt;br /&gt;
* DOS/[[.sys|SYS]]&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;UPX-8086&amp;quot;/&amp;gt;&lt;br /&gt;
* [[Linux]]/i386 [[a.out (file format)|a.out]]&lt;br /&gt;
* Linux/[[Executable and Linkable Format|ELF]] （位于 i386, [[x86-64]], [[ARM architecture|ARM]], [[PowerPC]]平台）&lt;br /&gt;
* Linux/kernel （位于i386, x86-64 and ARM平台） &lt;br /&gt;
* [[Mach-O]]/ppc32, Mach-O/i386 (自3.09版本后还支持Google Go创建的此格式程序)&lt;br /&gt;
* rtm32/[[Portable Executable|PE]] (如 [[Borland]] [[Turbo C|C]]/[[Turbo Pascal|Pascal]] compilers&amp;lt;ref&amp;gt;{{Cite web |url=http://www.vogons.org/viewtopic.php?t=25997 |title=存档副本 |access-date=2018-01-30 |archive-date=2022-01-11 |archive-url=https://web.archive.org/web/20220111150654/https://www.vogons.org/viewtopic.php?t=25997 |dead-url=no }}&amp;lt;/ref&amp;gt;编译的程序)&lt;br /&gt;
* tmt/adam (如the TMT Pascal compiler&amp;lt;ref&amp;gt;{{Cite web |url=https://linux.die.net/man/1/upx |title=存档副本 |access-date=2018-01-30 |archive-date=2018-10-05 |archive-url=https://web.archive.org/web/20181005014749/https://linux.die.net/man/1/upx |dead-url=no }}&amp;lt;/ref&amp;gt;编译的程序)&lt;br /&gt;
* [[PlayStation]]1/EXE&lt;br /&gt;
* [[Watcom C/C++编译器|Watcom]]/LE ([[DOS4G]]、[[PMODE/W]]、[[DOS32A]] 和 [[CauseWay DOS Extender|CauseWay]])&lt;br /&gt;
* 包含[[x86]] (32-Bit)代码的[[Windows]]/[[Portable Executable|PE]] [[EXE]] 文件&lt;br /&gt;
* 包含[[AMD64]] (64-Bit)代码的[[Windows]]/[[Portable Executable|PE]] [[EXE]] 文件（实验性的）&lt;br /&gt;
&lt;br /&gt;
UPX{{When|目前}}不支持为了在[[Portable Executable#.NET, metadata, and the PE format|.NET Framework]].运行而包含了 [[通用中间语言|CIL]]代码的[[Windows]]/[[Portable Executable|PE]] [[EXE]] 文件。&lt;br /&gt;
&lt;br /&gt;
==注释==&lt;br /&gt;
{{Reflist|group=&amp;quot;nb&amp;quot;|refs=&lt;br /&gt;
&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;UPX-images&amp;quot;&amp;gt;UPX对DOS .COM风格的文件的压缩支持可以扩展到一些其它类似的二进制文件中去。一些[[FreeDOS]] 和 [[EDR-DOS]]内核文件已经被证实可以进行UPX压缩。&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;UPX-data&amp;quot;&amp;gt;UPX也可以压缩不可执行的二进制文件，只要使用它们的程序或驱动能够识别它们是由UPX压缩并且能够执行在文件中包含的解压缩代码即可。已知的例子是FreeDOS使用的.CPX文件以及被UPX压缩过的.CPI字体文件。&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;UPX-8086&amp;quot;&amp;gt;对于DOS平台，UPX支持特殊选项&amp;lt;tt&amp;gt;-8086&amp;lt;/tt&amp;gt;，以强制嵌入式解压缩器与[[Intel 8088]]/[[8086]]处理器兼容，这样做之后即使在运行DOS的最早的PC上也可以执行和解压缩压缩文件。&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 參考資料 ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
{{Portal|自由軟件|Free Software Portal Logo.svg}} &lt;br /&gt;
* [http://upx.sourceforge.net UPX: the Ultimate Packer for eXecutables] {{Wayback|url=http://upx.sourceforge.net/ |date=20210826052813 }}&lt;br /&gt;
* [http://www.oberhumer.com/opensource/ucl/ UCL]&lt;br /&gt;
* [http://www.oberhumer.com/products/nrv/ NRV]&lt;br /&gt;
* {{SourceForge|upx|UPX - a powerful executable packer}}&lt;br /&gt;
* {{Freshmeat|upx|UPX}}&lt;br /&gt;
&lt;br /&gt;
{{Compression Software Implementations}}&lt;br /&gt;
&lt;br /&gt;
[[Category:数据压缩软件]]&lt;br /&gt;
[[Category:SourceForge专案]]&lt;br /&gt;
[[Category:1998年软件]]&lt;br /&gt;
[[Category:数据压缩自由软件]]&lt;br /&gt;
[[Category:組合語言軟體]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Willy1018-bot</name></author>
	</entry>
</feed>