输入:filename.bin
输出:
char file_filename_data[] = {
0x47, 0x45, 0x54, 0x20, 0x2f, 0x63, 0x61, 0x6d,
0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x48, 0x54,
0x54, 0x50, 0x2f, 0x31, 0x2e, 0x31, 0x0d, 0x0a,
0x48, 0x6f, 0x73, 0x74, 0x3a, 0x20, 0x79, 0x6d,
0x61, 0x70, 0x2e, 0x64, 0x79, 0x6e, 0x64, 0x6e,
0x73, 0x2e, 0x6f, 0x72, 0x67, 0x0d, 0x0a, 0x55,
0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65, 0x6e,
0x74, 0x3a, 0x20, 0x4d, 0x6f, 0x7a, 0x69, 0x6c,
...
}; // This is the data from the file "filename.bin"
size_t file_filename_size = 1234;
我想将一些文本文件存储在可执行文件中。我在linux和windows中使用CMake并构建C ++项目。
谢谢!
答案 0 :(得分:7)
xxd
正是您要找的。示例调用可以是:
xxd -i filename.bin data_output.h
data_output.h
的内容为:
unsigned char in_file[] = {
0x68, 0x65, 0x6c, 0x6c, 0x6f
};
unsigned int in_file_len = 5;
答案 1 :(得分:1)
大多数情况下,您可以在文件末尾附加信息。这是一个黑客攻击,但它被许多应用程序使用 - 安装程序,python冻结(我认为),许多演示编码器在过去使用过它。
基本上只做(CMD.EXE)
echo“Blah”>> myexefile.exe
您如何找到这些信息?有创造力 - 也许存储一个独特的魔术cookie,或者只是总是把最后4或8个字节告诉你文件的大小,这样你就可以找到它开始的地方。