实际上,有一种方法可以打开一个文件来设置加密密钥或密码,这样任何其他用户(除了谁知道)都无法使用
打开它。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;
}
答案 0 :(得分:2)
通过将解密文件的内容传递文件,然后将输出传递给编译器。由于有很多选项如何加密文件,你应该自己做,你不能指望编译器为你做这件事。
答案 1 :(得分:1)
您需要创建一个Makefile,它将根据gcc执行只编译一个.c文件。然后你需要从stdin中获取gcc读取源代码。然后你需要一个解密工具,它将解密的源代码输出到stdout,这样你就可以将它传递给gcc。
您可以通过创建包装脚本/程序来解释编译器命令行并使用适当修改的参数调用实际编译器,将未加密的源代码传递给编译器(如果单个源文件中有许多源文件可能执行多次),则可以扩展此解决方案命令行)。这样您就可以使用现有的Makefile。
但是,要做到这一点的第一步是,您需要可以输出到stdout的解密工具,因此您可以将其传递给编译器。 vim
可以使用正确的命令行为你做这个......