我正在使用 MinGW/gcc 在 Windows 上编写 C 应用程序。我需要使用 #include 指令来包含一个包含加密字符串的文件。该字符串将在运行时解密。我想这样做,以便在使用十六进制编辑器查看可执行文件时不会看到该字符串。
我试过了,但是不行。不过你明白了:
char *hidden_str =
#include "encrypted_text.dat"
其中可能有未转义的内容使编译器感到困惑。我不知道。不知道加密后会怎样。
如果有更好的方法,我愿意接受。
最佳答案
如果您在安装 MinGW 时安装并配置了 MSYS,您应该可以访问名为 xxd
的命令,它需要一个文件的十六进制转储。通过使用 -i
命令行标志,您可以让它输出一个 C 语言友好的文件,您可以轻松导入该文件。
一个示例调用是:
xxd -i in_file output.h
output.h
的内容将如下所示:
unsigned char in_file[] = {
0x68, 0x65, 0x6c, 0x6c, 0x6f
};
unsigned int in_file_len = 5;
然后您可以将该文件包含到您的 C 源代码中并访问它:
#include "output.h"
unsigned int i;
for(i = 0; i < in_file_len; i++)
{
printf("%c", in_file[i]);
}
关于c - 我如何#include 包含加密字符串的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6240283/