Встраивать двоичные ресурсы в PE-изображения (EXE, DLL) с помощью Windows API довольно просто: (см. http://msdn.microsoft.com/en-us/library/ms648008(v=VS.85).aspx).
Есть ли аналогичный стандартный API в Linux?
или, возможно, какой-то де-факто подход к встраиванию ресурсов?
Цель состоит в том, чтобы внедрить некоторые статические двоичные и/или текстовые данные в исполняемый файл, например. фотографии, HTML и т.д., так что бинарный дистрибутив программы так же просто, как сделать одну копию файла? (предполагая, что все зависимости библиотек в порядке)
Обновление:
Следующее предложение bdk, я пробовал решение, описанное в Вложение двоичных blobs с использованием gcc mingw, и это сработало для меня, Хотя, есть некоторые проблемы, о которых стоит упомянуть: мой проект (в Code:: Blocks) состоит из нескольких файлов С++ и добавления двоичных данных в любой из соответствующих объектных файлов, которые они бесполезны для взлома. objdump -x
будет показывать, что большинство символов прошло после внедрения (и я не нашел, как это исправить). Чтобы преодолеть эту проблему, я добавил пустой проект .cpp файл в проект с единственной целью предоставить объектный файл для воспроизведения и написал следующий шаг пользовательской сборки для этого файла, который сделал работу красиво (например, использует макросы Code:: Blocks ):
$compiler $options $includes -c $file -o $object
ld -Ur -b binary -o $object <binary payload path>