在GCC Linux上,有没有一种方法可以将文件资源静态添加到C程序中,然后如何将它扩展到/ tmp从main ()?如何扩展C程序中嵌入的文件资源
4
A
回答
3
您可以使用objcopy嵌入资源,然后使用普通文件操作在/ tmp中创建文件。
如果您编译这个程序:
#include <stdio.h>
extern char _binary_resource_bin_start, _binary_resource_bin_end;
int main() {
FILE*out = fopen("/tmp/rsrc.bin","wb");
fwrite(&_binary_resource_bin_start,
&_binary_resource_bin_end - &_binary_resource_bin_start, 1, out);
fclose(out);
}
与此生成的文件:
program: program.o resource.o
$(CC) -o program program.o resource.o
resource.o: resource.bin
objcopy -I binary -O elf32-i386 -B i386 resource.bin resource.o
resource.bin:
echo resource-file-contents > resource.bin
我相信你会得到你想要的东西。
2
只是将它存储为一个字符串(char *)。如果它嵌入了空值,或者你不想用引号,反斜杠等等的uuencode,hex或base64编码进行转义,或者将解码例程放入你的C程序或者在外部调用它。只需使用常规文件操作即可将数据写入/ tmp文件。
0
也许你正试图隐藏你的PHP代码。如果是这种情况,请记住从生成的可执行文件中检索PHP代码很简单,甚至不需要运行后者。如果隐藏/混淆是目标,那么您可能需要考虑使用PHP编码器。
相关问题
- 1. 写入嵌入在资源文件中的文本文件C#
- 2. 你如何在C中嵌入资源文件?
- 3. Android的扩展文件 - 资源测试
- 4. 读取资源文件的扩展名
- 5. 在C中嵌入资源#
- 6. 如何调用.Net程序集中的嵌入式资源的exe文件?
- 7. CF中的资源文件 - 未嵌入
- 8. 如何将扩展程序提供的函数嵌入到.ods文件中
- 9. Android扩展文件 - 找不到资源
- 10. c#:如何将exe文件嵌入资源?
- 11. 如何从C#嵌入式资源获取文件夹名称
- 12. 在Firefox扩展中嵌入SWF文件
- 13. VS2010扩展资源?
- 14. 在资源文件中嵌入数据
- 15. 如何在iOS应用程序中嵌入自定义资源和文件夹
- 16. C#,WPF,嵌入式资源/嵌入式资源
- 17. 如何将扩展文件资源资源(InputStreams)转换为可绘制
- 18. 如何使用“Resx中嵌入的资源”中的资源?
- 19. 在资源中嵌入文本文件C#
- 20. C++中的嵌入式资源
- 21. 目标C中的嵌入式资源?
- 22. 嵌入应用程序资源
- 23. .NET获取嵌入的资源文件
- 24. 嵌入式资源的文件路径?
- 25. 如何处理扩展其他资源的资源
- 26. 扩展C#基于文件资源管理器
- 27. 不能与EN-US.resx扩展访问嵌入资源
- 28. 如何使用Android资源创建Uri,文件扩展名为
- 29. 如何更改文件扩展名,Windows/Windows资源管理器
- 30. 如何将XML文件嵌入到资源文件
我试过这个:http://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967 ...它的工作! :) – Volomike