Подтвердить что ты не робот

Какая программа создает массив C для любого файла?

Я помню, что в прошлом я видел программу, которая бы взяла любой файл и сгенерировала массив C, представляющий этот файл в качестве вывода; в некоторых случаях это предотвратит распространение отдельного файла. Какая программа Unix/Linux делает это?

4b9b3361

Ответ 2

Для больших файлов преобразование в текст, а затем повторное компиляцию неэффективно и не нужно. Вместо этого используйте objcopy:

objcopy -I binary -O elf32-i386 stuff stuff.o

(Отрегулируйте архитектуру вывода, если это необходимо для платформ, отличных от x86). Затем, как только вы связали его с вашей программой, вы можете получить к нему доступ так:

extern char _binary_stuff_start[], _binary_stuff_end[];
#define SIZE_OF_STUFF (_binary_stuff_end - _binary_stuff_start)

...

foo(_binary_stuff_start[i]);

Ответ 3

hexdump -v -e '16/1 "0x%x," "\n"'

будет генерировать C-подобный массив из stdin, но нет объявления, никаких скобок или хорошего форматирования.

Ответ 4

Я знаю, что это вопрос Unix/Linux, но любой, кто ищет это, который хочет сделать то же самое в Windows, может использовать Bin2H.