我最近做了一些关于可执行压缩的研究。编译test.c
C语言源并在Linux中使用UPX压缩它而不是windows。它是终端中的列表:UPX: test.so NotCompressibleException
。 test.c
的源代码是:
int main(){
int i = 0;
printf("HelloWorld\n");
return 0;
}
我猜测可执行文件太简单了吗?要么 可能是我错过了什么?如果有人知道这个问题,请告诉我 我的理由。如果没有人告诉我,我必须阅读源代码以找出问题。啊!阅读源代码负担。
答案 0 :(得分:7)
输出NotCompressibleException
有几个原因,但在你的情况下,这仅仅是因为二进制文件的大小太小。 UPX无法处理40Kb以下的二进制文件。
解决此问题的最佳方法是在静态模式下编译二进制文件,以获得更大的可执行文件。所以,只需尝试:gcc -static -o mytest mytest.c
然后upx -o mytest-upx mytest
。