-1

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

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;
}
4

2 回答 2

2

通过管道将文件解密,然后将输出管道传输到编译器。由于加密文件有很多选择,你应该自己做,你不能指望编译器为你做。

于 2013-01-02T13:00:21.247 回答
1

您需要创建一个 Makefile,每次 gcc 执行将只编译一个 .c 文件。然后你需要让 gcc 从标准输入读取源代码。然后,您将需要一个解密工具,它将解密的源代码输出到标准输出,以便您可以将其通过管道传输到 gcc。

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

但是,完成这项工作的第一步是,您需要可以输出到标准输出的解密工具,这样您就可以将其通过管道传输到编译器。vim可以用正确的命令行为你做到这一点......

于 2013-01-02T13:10:48.260 回答