现象:

在Linux而非Windows中编译C语言源并用UPX压缩时。在终端:中列出UPX: test.so NotCompressibleException。的源代码test.c是:

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

原因:二进制文件的太小。UPX无法处理40Kb以下的二进制文件。

解决:静态模式下编译二进制文件,以获得更大的可执行文件,例如:

gcc -static -o test test.c 
upx -o test-upx test

 

 

Logo

更多推荐