问题标签 [upx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
24928 浏览

c++ - 使用 UPX 压缩 Windows 可执行文件有什么缺点吗?

我以前使用UPX来减小我的 Windows 可执行文件的大小,但我必须承认我对这可能产生的任何负面影响都很天真。所有这些打包/拆包的缺点是什么?

是否有人会建议不要对可执行文件进行 UPX 处理(例如,在编写 DLL、Windows 服务或针对 Vista 或 Win7 时)?我的大部分代码都是用 Delphi 编写的,但我也使用 UPX 来压缩 C/C++ 可执行文件。

附带说明一下,我没有运行 UPX 以试图保护我的 exe 免受反汇编程序的攻击,只是为了减小可执行文件的大小并防止粗略的篡改。

0 投票
5 回答
1081 浏览

delphi - madExcept + UPX

我在 Delphi 2007 上使用 madExcept + UPX 时遇到问题。每当我打开压缩的应用程序时,都会出现一个 Windows 异常对话框,代码为 0xc0000005。有人有解决方案吗?

谢谢!

0 投票
3 回答
1151 浏览

gpl - 我可以使用 upx packer 压缩商业程序吗?

我可以使用 upx packer 压缩商业程序吗?还是 GPL 限制我这样做?

0 投票
3 回答
27150 浏览

winapi - 如何检测给定 exe 上使用的 PE 打包程序是什么?

我发现了一个似乎已打包的应用程序。我用一些十六进制编辑器打开它,它包含“UPX1”部分和“3.00 UPX!” 细绳。不幸的是,我无法使用最新的 upx 解压缩它,它说“不是由 UPX 打包”。有没有办法找出使用了哪些其他 PE 压缩器/加密器?

0 投票
1 回答
621 浏览

python - UPX-ing 我的 32 位 Python 2.6.4 开发环境 EXE/PYD/DLL 文件有什么缺点吗?

UPX-ing 我的 32 位 Python 2.6.4 开发环境 EXE/PYD/DLL 文件有什么缺点吗?

我问的原因是我经常使用自定义 PY2EXE 脚本,UPX 在每次构建时复制这些文件的副本。

是的,我可能会喜欢并尝试缓存 UPX 文件,但我认为更简单、更安全和更高性能的解决方案是对我的 Python 2.6.4 目录进行一次 UPX 并完成它。

想法?

马尔科姆

0 投票
2 回答
1702 浏览

c - Detecting UPX programmatically

I'm trying to figure out how to detect whether a binary has been compressed with UPX. I am using a simple CRC to detect whether my app was in any way changed and if the CRC failed on the size due to a packer I would like to detect that as OK.

Right now I am starting with UPX.

So, is there any marker on the binary? are there any specific JMP or other instructions that I should search?
This will mainly be tested in Windows, but in the future I might add it to Linux as well.

Any help (and code) is appreciated.

ADDED:

I found that in the 10 binaries I checked the

AddressOfEntryPoint
Import Directory RVA
Resouce Directory RVA

either point to UPX or have an offset that is set by UPX. Any information on this?

Thanks

0 投票
2 回答
6060 浏览

c - 在 Linux 中检查 ELF 是否包含 UPX

我对 ELF 格式的工作原理或如何通过代码访问其标头和数据的知识为零,但是我需要检查 ELF 二进制文件是否已使用 UPX for Linux 进行压缩(打包?)。

strings用我看到的字符串检查二进制文件,UPX!所以我想我可以使用它。对二进制文件进行十六进制编辑会显示字符串,对于二进制文件中的位置,我可以假设它是 ELF 标头之一的一部分(如果我错了,请纠正我)。这是一个转储:

不知道好不好看,不好意思。

有谁知道如何在 Linux 上检测 UPX?如果没有,如何访问标题并获取该UPX!字符串(标题的名称?)?

我确实查看了 UPX 源代码,但一切都是 C++,我正在寻找用 C 编写代码,这真的很难理解。

谢谢,欢迎任何帮助。

编辑:关于赏金。他们的回答必须给出一个可行的可靠示例,因为我尝试了不同的方法,但它们并不总是有效,如下面的示例。
谢谢

0 投票
5 回答
4615 浏览

delphi - 确定exe文件是否已用UPX压缩的方法

有没有办法确定exe文件是否已用UPX压缩?

除了我发现代码有问题之外,确定 exe 文件是否已被压缩的功能非常好。如果函数 IsUPXCompressed 被调用然后你尝试运行 upx,upx 无法保存它修改的文件。函数中存在无法正确共享权限的内容。我已经测试了几个小时。如果我不调用该方法,那么 UPX 可以毫无问题地写入文件。你调用它然后尝试运行 UPX 它不会保存文件。UPX 在尝试写入文件时报告 IOException Permission denied 错误。

任何人都可以在代码中发现会导致此问题的错误吗?

谢谢


除了我发现代码有问题之外,确定 exe 文件是否已被压缩的功能非常好。如果函数 IsUPXCompressed 被调用然后你尝试运行 upx,upx 无法保存它修改的文件。函数中存在无法正确共享权限的内容。我已经测试了几个小时。如果我不调用该方法,那么 UPX 可以毫无问题地写入文件。你调用它然后尝试运行 UPX 它不会保存文件。UPX 在尝试写入文件时报告 IOException Permission denied 错误。

任何人都可以在代码中发现会导致此问题的错误吗?

谢谢

0 投票
1 回答
401 浏览

compression - 在发布版本上使用 UPX(可执行压缩器)?

我想知道在项目的发布版本中使用UPX(或任何其他可执行压缩器)是否正常/可接受。

例如,我有这个可执行文件,发货时通常为 1.7MB,但打包后为 426KB。并不是说我在乎 1.2MB 的存储空间,但 426KB 在下载和一般情况下看起来要好得多。

此外,我听说(未经测试)某些程序在压缩时启动时性能更好,因为从硬盘读取比解压缩更昂贵。

那么是否建议在发布版本中压缩可执行文件?

0 投票
1 回答
819 浏览

c++ - 提升线程和 UPX 压缩 == 无效的 win32 应用程序?

当我刚刚宣布

在我的程序中,然后用UPX压缩.exe文件,压缩成功。但是当我尝试启动压缩的 exe 时,Windows 告诉我它是“无效的 win32 应用程序”。

UPX 有一个错误报告(类似错误),但它有不同的错误消息(“应用程序未能正确初始化(0xc0000005)”)。

在我的情况下,操作系统认为文件已损坏或其他原因,因此它甚至无法开始显示错误!为什么??

Win7x64、C++、VisualStudio、升压 1.47、UPX3.07

奇怪的消息:

  1. 解压 exe 会使损坏的 exe 引发与此处完全相同的错误。(“应用程序未能正确初始化(0xc0000005)”)这是针对解压后的 exe,而不是像错误报告中那样打包。

  2. extern "C" void tss_cleanup_implemented(void) {} 在包含 boost 的线程头之前并不重要。结果是一样的。

主.cpp:

可能有人会尝试编译和压缩?