如何在可执行文件中嵌入资源以将其隐藏起来?

时间:2017-07-13 19:10:19

标签: c++ embedded-resource

我正在构建一个程序,它将从文件中随机选择文本。

我可以使用什么来隐藏文件以及用户的文字?

是否可以在此文本中构建可执行文件?

2 个答案:

答案 0 :(得分:0)

  

是否可以在此文本中构建可执行文件?

将文本文件作为内联资源包含的一种方法是稍微修改文本文件并使用#include语句:

文本文件的格式:

R"rawtext(
Put all of the text input you want here:
...
)rawtext"

修改可能也可以使用一个小工具来完成,该工具在预编译步骤中围绕要与程序内联的文本进行编译:

在GNU makefile中,例如:

 MySource.cpp: MySource.h MyTextFile.inc

 MyTextFile.inc: MyTextFile.txt
     sed -e "s/\(.*\)/R'rawtext(\1)rawtext'/" < $< > $@

在你的程序中,你可以使用:

std::istrstream input(
#include "MyTextFile.inc"
);

并将其与std::istream一起使用,就像从外部打开的文件中一样。

您可以阅读有关原始字符串文字here的更多信息。

答案 1 :(得分:0)

将资产文件构建到c ++可执行文件中的一个好方法是将其转换为头文件,您可以将其包含在源代码中。

这个问题的答案显示了如何使用linux命令xxd将任意文件转换为头文件。

script/tool to convert file to C/C++ source code array

如果您决定需要通过使用可以查看可执行文件内的文本的十六进制编辑器等工具来阻止更加坚定的用户查看文本,您可以压缩和/或加密文件并在运行时对其进行解密。

希望这有帮助,

詹姆斯