如何从可执行文件中提取数组?

时间:2010-04-27 14:43:53

标签: c arrays objcopy

我想做this question的逆。

我将文件作为数组嵌入到可执行文件中,之后我想从可执行文件中提取嵌入文件。

似乎objcopy在这里可能有用,但我还没有想出适当的咒语。

(编辑:澄清问题,我原先在编辑中删除了它的关键......)

2 个答案:

答案 0 :(得分:2)

如果您将嵌入文件放在其自己的部分中,我可以使用objcopy将该部分提取到原始输出文件中。 看看gcc的__attribute__((section("embedded_file") )) 或者,如果您使用链接器以其他方式将文件放入exe中,您应该能够以另一种方式将其放入另一个部分,但我不熟悉这样做。

答案 1 :(得分:1)

在数组的开头放置一个可识别的模式,以帮助您查找文件中的数据。

如果您正在创建Windows可执行文件,请将数据放入可执行文件中的二进制资源,而不是仅将其编码为数组 - 然后您可以使用常规Windows资源函数(FindResource,{{3获取数据(虽然这比正如它应该的那样正常工作有点棘手)。