UPX不可压缩异常

13

我最近进行了一些关于可执行文件压缩的研究。当我在Linux而不是Windows下编译test.c C语言源代码并用UPX压缩它时,终端显示如下:UPX: test.so NotCompressibleExceptiontest.c的源代码如下:

int main(){
    int i = 0;
    printf("HelloWorld\n");
    return 0;
}

我的猜测是可执行文件太简单了,无法压缩?还是我错过了什么?如果有人知道这个问题,请告诉我原因。如果没有人告诉我,我就必须阅读源代码找到问题所在。啊!阅读源代码很麻烦。

1个回答

19

产生NotCompressibleException的原因有几个,但在您的情况下,是因为二进制文件的大小太小了。UPX无法处理小于40Kb的二进制文件。

解决此问题的最佳方法是以静态模式编译您的二进制文件,以获得更大的可执行文件。所以,请尝试:gcc -static -o mytest mytest.c,然后再运行upx -o mytest-upx mytest


谢谢你! - William Martens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接