加密C文件的编译

时间:2013-01-02 12:46:38

标签: c encryption

实际上,有一种方法可以打开一个文件来设置加密密钥或密码,这样任何其他用户(除了谁知道)都无法使用

打开它。

vim -x test.c(比如文件名是test.c)

它将询问加密密钥,然后我们可以编写代码。

但是当我使用gcc(在Linux中)或cc(在solaris中)编译时,它会给出一些错误列表,如下所示:

 encrypted.c", line 1: invalid source character: <0x17>
"encrypted.c", line 1: invalid source character: <0xffffff96>
"encrypted.c", line 1: invalid source character: <0xffffffd8>
"encrypted.c", line 1: invalid source character: <0xffffffa9>
"encrypted.c", line 1: invalid source character: <0xffffffcc>

有没有办法编译这个加密文件,或者我在编译时做错了(这样做无效)

以下是test.c的代码

#include <stdio.h>

#define CUBE(x) ((x)*(x)*(x))

int main()
{
int x = 5;
int val;
val = CUBE(++x);
printf("val is: %d",val);
return 0;
}

2 个答案:

答案 0 :(得分:2)

通过将解密文件的内容传递文件,然后将输出传递给编译器。由于有很多选项如何加密文件,你应该自己做,你不能指望编译器为你做这件事。

答案 1 :(得分:1)

您需要创建一个Makefile,它将根据gcc执行只编译一个.c文件。然后你需要从stdin中获取gcc读取源代码。然后你需要一个解密工具,它将解密的源代码输出到stdout,这样你就可以将它传递给gcc。

您可以通过创建包装脚本/程序来解释编译器命令行并使用适当修改的参数调用实际编译器,将未加密的源代码传递给编译器(如果单个源文件中有许多源文件可能执行多次),则可以扩展此解决方案命令行)。这样您就可以使用现有的Makefile。

但是,要做到这一点的第一步是,您需要可以输出到stdout的解密工具,因此您可以将其传递给编译器。 vim可以使用正确的命令行为你做这个......