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

python - 使用 UPX 压缩时,pyinstaller 捆绑的可执行文件中的 LoadLibrary 错误

我正在尝试使用 Pyinstaller 构建单文件 Windows 命令 shell 可执行文件。这是一个简单的测试文件,足以产生问题。

我可以使用以下 Python 脚本生成单个可执行文件

这行得通。但是,如果我取消注释该--upx-dir行,则可执行文件将失败并显示此错误消息

我希望我对 Pyinstaller 的说明不够充分,因为我希望捆绑 python DLL(这是我构建单个可执行文件的意图)。但是,我不知道我需要做什么。我试过包括额外的命令

但这并没有改变任何东西。

我正在使用安装了 Python 3.8 和最新版本(3.96)的 UPX 的 Windows 10 机器。

0 投票
1 回答
481 浏览

python-3.x - 使用 pyInstaller/UPX 制作的可执行文件遇到 DLL 加载失败:参数不正确

在虚拟环境中使用 pyInstaller / UPX 生成的可执行文件会引发错误

DLL load failed: The parameter is incorrect. while parameter is correct...

我已经制作了 python 可执行文件,但没有pyInstaller UPX它的关于250MB& 它的工作正常。

为了减小大小,我使用pyInstaller UPX创建了另一个 python 可执行文件(包含相同的代码) ,它给了我一个错误,请参阅Error_img

代码包含库,如Pandas,Numpy,Openpyxl

错误显示在我定义 Pandas 库的第 8 行

0 投票
0 回答
340 浏览

permissions - 如何将 Linux (Android) ARM64 可执行文件分成小部分和大部分?

背景

我有一个 Android 应用程序,它使用本机 ARM64 可执行文件(本质上是 GCC 工具链,/data/data/%package%/somePath在第一次运行时提取到应用程序目录())来做一些工作。由于Android 10中的更改文件/data/data/..不再具有可执行权限。

确认的解决方法

解决方法是使可执行文件看起来像共享库(libsomething.so),由 Android 提取到dir/data/app/%package%并允许具有可执行权限。符号链接可能有助于模仿以前的文件结构。android:extractNativeLibs="true"AndroidManifest.xml

问题

问题是所有可执行文件(又名新的“共享库”)都以 zip 压缩比打包到 android apk 中(因为 apk 本质上只是一个 zip 文件),如果它使用 7zip 存档并且总重量超过100Mb,这是 Android 上的应用程序限制(适用于 apk 文件)。

问题和建议

我如何将可执行文件分成一小部分(进入/data/app/%package%和大部分(或只是现有的可执行文件/data/data/%package%)?这个想法是小可执行文件只是“加载并运行”一个常规的。压缩常规可执行文件的好处使用 7zip,由于 7zip 具有更好的压缩比,它使 apk 的大小更小。

我一直在研究UPX的使用方向,但没有经验(注意我必须在 Mac 机器(或带有 VM 或 Docker 的 Linux)上准备可执行文件才能在 Android ARM64 上运行)。我也一直在考虑创建 7z sfx,但这似乎很棘手(再次,它必须在 x86_64 上创建并在 ARM64 上运行)。我还发现了一些类似的 QA(推荐memexec()fexecve()),但我不确定最佳方法是什么。

理想情况下,我希望有一些只接受 cmd 和常规可执行路径的小型“通用”ARM64 可执行文件(或者能够使用 Android NDK 从源代码编译它)。

PS。由于不同的原因,不希望将应用程序包和动态​​交付模块作为高级替代方案。

聚苯乙烯。UPX不适用于 Android 10(似乎是安全问题)。

0 投票
1 回答
2760 浏览

python - auto-py-to-exe 生成 2 条错误消息:“UPX 不可用”和“打包时出错”

我正在尝试将我的转换.py.exe.
但是,使用auto-py-to-exe. 第一条错误消息如下:

第二条错误消息如下:

第二条消息导致“项目输出将不会移动到输出文件夹。
相关错误:

0 投票
0 回答
75 浏览

size - Linux 上的 pyinstaller 和 upx - exe 大小没有区别

我正在 Xubuntu 20.04 上用这个脚本构建一个项目。

upx-dir选择与否不会影响输出文件的大小(在这种情况下约为 320MB)。在 Windows 上运行的相同命令可以正常工作。调试输出显示已找到 UPX 模块:

有什么建议么 ?

0 投票
1 回答
8051 浏览

macos - 使用 Mac Big Sur 安装 upx

我在安装 upx 时遇到问题。以下是我采取的步骤。我的 macOS 是 11.2.1

我该如何解决这个问题?我需要安装 upx,因为当我尝试运行某些应用程序时,它们会显示“您无权打开应用程序……”。

0 投票
0 回答
29 浏览

upx - 如何使用过滤器 22 解压 UPX 文件?

众所周知,UPX过滤是一种数据预处理方法,可以提高UPX处理文件的压缩率。我有几个 UPX 文件都有过滤器 22(十进制)。我不知道过滤器 22 的算法。任何人都可以在这里帮助我,以便我可以取消过滤文件,然后解压缩 UPX 文件中存在的文件吗?

0 投票
0 回答
69 浏览

python - 使用 UPX 压缩时,Pyinstaller librosa dll 导入失败

我试图解决这个问题几天了,但找不到答案。

我正在构建一个桌面程序并使用 Pyinstaller 打包它。它可以工作,但即使使用 --onefile、--onedir 和 virtualenv,分布大小也非常大。我尝试使用 UPX 来减小 dist 大小,结果大小还可以,但是在激活 exe 时它不起作用。

任何帮助将不胜感激,谢谢!(:

细节:

librosa 挂钩文件:

我制作了一个简单的用例来重建错误('pip install tr​​aceback' 用于跟踪打印):

pyinstaller=4.1(以后版本同样的错误),librosa=0.8.0(尝试降级,还是不行) Python 3.8.1 Win 10

构建 exe 行:venv\Scripts\pyinstaller.exe --upx-dir=..\..\..\utilities\upx-3.96-win64 main.spec

main.py - 除“import librosa”外的所有行都用于监控:

main.spec 文件:

我得到的错误:

0 投票
0 回答
285 浏览

homebrew - 无法在 M1 Silicon 中安装 UPX

这是错误,我成功安装了自制软件,但由于此错误,我无法安装 UPX。

0 投票
0 回答
53 浏览

c - 使用 UPX 解压 C 打包脚本后没有输出

我学习如何使用 UPX 和 C 语言打包然后解包脚本。这是我打包的脚本: 在此处输入图像描述

这很简单,只需在屏幕上键入字符串“hello world”。好吧,我使用下一个命令打包它:

这对我来说一切正常,这是 DIE 的输出

在此处输入图像描述

如您所见,在这里我得到 PE 包含 UPX(best选项,但没关系)。接下来我要做的是使用 x64dbg(x32 模式)打开打包文件。在那里我找到了popad规则,在一些命令之后,我到达了应用程序的实际解包入口点。这里是: 在此处输入图像描述

我确信这是实际的入口点,因为当我执行下面的所有代码直到它正常工作时,执行结果如下:

在此处输入图像描述

好吧,在它之后,当我找到程序运行的实际点时,我尝试使用内置应用程序Scylla创建一个内存转储:

在此处输入图像描述

我做的步骤:

  1. 在 OEP 中插入我的新入口点,对我来说是005E14C0
  2. 其次,我点击按钮IAT Autosearch
  3. 然后我点击获取进口
  4. 下一步是使用选定的设置转储内存,我单击转储并将文件另存为main-upx_dump.exe
  5. 毕竟,我只需单击最后一个按钮Fix Dump即可修复导入表并保存文件。

我要做的下一步是运行 .exe,当我在 .exe 中启动它时cmd,我收到的输出什么都没有,只是一个空字符串,这里是:

在此处输入图像描述

我只是不明白我做错了什么,如果您知道可能出了什么问题,请写一个答案,非常感谢!