问题标签 [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 投票
1 回答
939 浏览

c++ - UPX 是否神奇地将二进制文件从动态链接转换为静态链接库?

我正在尝试在 gnu/linux amd64 上使用静态库构建基于 qt 的软件,但没有成功(qt 是成功静态构建的)。

现在我看到有些人在使用 UPX。所以我尝试了一个动态构建,事实上,“文件”命令将二进制文件识别为静态链接。我可以相信吗?我应该考虑改用 statifier 吗?

提前致谢

编辑

对不起,我不够清楚。我正在尝试使用 QT 框架构建应用程序,但构建脚本很复杂并且是为共享库制作的。我能够在动态链接的二进制文件中构建应用程序,它正在工作,但我想获得一个带有静态链接库的二进制文件。我尝试了 UPX 软件 ( http://upx.sourceforge.net/ ),正如我在其他主题上看到的那样,它用于将带有动态库的二进制文件转换为带有静态库的二进制文件。

但这对我来说似乎太神奇了,它真的有效还是只是隐藏了一些东西而 linux 认为二进制文件现在是静态链接的?

感谢您的回答。

0 投票
1 回答
258 浏览

nsis - NSIS Get file version of EXE that is UPX Compressed

I have been using a little NSIS script for a few years that grabs the version of the EXE so I can display it in the installers welcome text.

I got the script here: http://nsis.sourceforge.net/Invoking_NSIS_run-time_commands_on_compile-time

Recently I started using UPX to compress the EXE of the application.

Now that it is UPX compressed, the file version script no longer works, I'm guessing due to non standard header layout.

How can I read the file version from a UPX compressed EXE?

UPDATE: This is closed now but I discovered later this is likely to do with some kind of elevated permissions issue and running the command over a mapped drive.

0 投票
2 回答
2074 浏览

hex - 错误的 UPX 标头,无法使用 UPX 解压缩

我想解压缩一个可以从此链接下载的 UPX 文件。http://goo.gl/Uw2a6O

但是,当我使用 UPX 命令解压缩它时:

我收到了这个错误:

所以,我编辑我检查它的十六进制:

i.stack.imgur.com/VJ8ng.png

对此:

i.stack.imgur.com/PChDQ.png

抱歉,我不能包含超过 2 个链接,因为我在 SO 中的声誉点低于 10。

无论如何,然后我再次运行此命令,

我的许可被拒绝了。这是消息:

问题是,如何使用 UPX 工具解压缩此文件?

谢谢

0 投票
0 回答
300 浏览

delphi - Delphi 调试器崩溃(OpenDialog + 压缩 exe)

前几天遇到一个奇怪的bug

每当我的程序(正在调试)尝试打开保存对话框时,Delphi 2007 IDE 就会因外部异常而崩溃。我将其缩小到任何包含由 upx 压缩的 exe 的文件夹。

即,如果文件夹中的所有 exe 都是正常/未压缩的,那么一切都很好。但是,如果其中一个 exe 文件已使用 upx 压缩,则当 opendialog 尝试打开该文件夹时 IDE 会崩溃。

我怀疑 Windows shell 加载了 exe 模块(例如显示它的图标)并且 IDE 注意到并尝试加载该 exe 的调试信息并在那时崩溃。

关于如何解决这个问题的任何想法?附上我的测试程序

更新:添加了带有 IDE 堆栈跟踪的屏幕截图 在此处输入图像描述

0 投票
1 回答
923 浏览

delphi - 如何安全使用 UPX?

我正在尝试upx使用--lzma压缩方法来减小我的应用程序大小。

但是,每当我upx在压缩后使用和扫描我的应用程序时,都显示该应用程序有病毒。这是出现的病毒结果

Gen:Adware.Heur.RmTfWDj6fzli

如果我在使用前扫描应用程序upx,应用程序是完全干净的,没有检测到病毒。

我该如何避免这个问题?

我在这里使用 upx 391 http://upx.sourceforge.net/

0 投票
0 回答
427 浏览

android - UPX 不适用于 Android 上的 -fPIE 和 ARM

我使用 -static 编译的多线程 C++ 程序在 Android 上无法正常运行。如果我用 -fPIE 编译它,它会按预期工作。我不知道原因。我的问题是我无法使用 UPX 压缩 PIE 可执行文件,因为它说可执行文件格式未知。有什么解决办法吗?谢谢。

问候

0 投票
1 回答
143 浏览

common-lisp - 为什么 UPX 会破坏已编译的 SBCL 应用程序?

这主要是一个愚蠢的问题,因为 UPX(一种从可执行文件中提取额外字节的工具)比buildapp工具中的内置压缩节省了少量空间。

一个非常小的演示应用程序会创建一个 42 兆字节的文件。可以理解,因为 SBCL 环境并不小。

传递--compress-core选项将其buildapp缩小到 9.2MB。

我想我会尝试将 UPX 扔到生成的二进制文件中,而节省的只是更多的字节:9994288 -> 9871360

但是,生成的文件不再运行 - 它只是跳转到 SBCL REPL(没有错误,就好像我只是手动运行一样sbcl),并且在那里进行一些探索表明构成我的测试程序的函数不再存在。

UPX 对导致这种破坏的二进制文件做了什么?

0 投票
1 回答
1826 浏览

android - Android N Preview dlopen()“没有节标题”错误

我用 UPX 压缩了我的 Android APP 的库。在 Android N Priview5 设备上运行时,出现错误:“dlopen failed: xxx.so has no section headers”。

我找到了 Android Linker 的更新日志: http ://android-developers.blogspot.com/2016/06/android-changes-for-ndk-developers.html

它说“每个 ELF 文件都有包含在节标题中的附加信息。这些标题现在必须存在,因为动态链接器使用它们进行完整性检查。”

但是在压缩 whit UPX 之后,缺少 ELF 的节标题,我该如何解决这个问题。

精灵头:

魔术:7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00

等级:ELF32

数据:2的补码,小端

版本:1(当前)

操作系统/ABI:UNIX - 系统 V

ABI 版本:0

类型:DYN(共享对象文件)

机器:ARM

版本:0x1

入口点地址:0x0

程序头的开始:52(文件中的字节)

节头开始:0(文件中的字节)

标志:0x5000000,版本 5 EABI

此标头的大小:52(字节)

程序头大小:32(字节)

程序头数:7

节头大小:0(字节)

节标题数:0

节头字符串表索引:0

0 投票
1 回答
2144 浏览

python - 使用 pyInstaller/UPX 制作的可执行文件遇到 QtCore4.dll 错误

我用pyInstaller编译的 python 程序结果超过 400 MB。该程序的 GUI 基于htmlPY,它是“PySide 的 QtWebKit 库的包装器”。该程序的大尺寸部分归因于它使用 numpy、scipy 和 nltk 的事实,部分归因于图形库。

为了最小化程序的大小,我安装了UPX。这将程序的大小减小到略高于 100MB,虽然很大,但可以接受。

第一个问题是 pyInstaller 没有检测到 htmlPy,也没有将它包含在编译的程序中。这可以通过将我的 Python 安装中的 htmlPy 模块复制到 pyInstaller 创建的“dist”目录中来解决。完成此操作后,未使用 UPX 编译的程序版本运行良好。

将 htmlPy 添加到“dist”目录后,运行可执行文件会在创建 GUI 时使程序崩溃。我不确定这是否是由于 UPX 和 QT 之间或 UPX、QT 和 htmlPy 之间的交互问题造成的。Windows“问题签名”如下:

关于这里发生了什么以及如何解决它的任何想法?

编辑:

这些是我的 .spec 文件的内容:

这些是 rthook_pyqt4.py 的内容:

编辑2:

这是一些初始化代码(标准 htmlPy 票价):

程序在进入第 3 步之前就崩溃了。

0 投票
1 回答
179 浏览

binary - 执行 shell 脚本的 Applescript 小滴

我想用 Automator 制作一个 Applescript 液滴,它执行以下操作:当我在液滴中放置“Application.app”时,脚本运行

其中“Application.app”和二进制是变量,upx.out 包含在 Automator 液滴的 Resources 子文件夹中。