Допустим, у меня есть исполняемый файл с именем "execfile". Я хочу прочитать этот файл с помощью программы на C ++ (в Unix) и затем выполнить его из памяти. Я знаю, что это возможно в Windows, но я не смог найти решение для Unix.
В псевдокоде это будет примерно так:
declare buffer (char *)
readfile "execfile" in buffer
execute buffer
Просто чтобы прояснить: очевидно, я мог бы просто выполнить файл, используя system("execfile")
, но, как я уже сказал, это не то, что я намерен делать.
Спасибо.
РЕДАКТИРОВАТЬ 1: Чтобы сделать это еще более понятным (и причина, по которой я не могу использовать dlopen
): мне нужна эта функция, потому что исполняемые файлы будут генерироваться динамически, и поэтому я не могу просто собрать все они одновременно в одной библиотеке. Чтобы быть более точным, я создаю инструмент, который сначала зашифрует исполняемый файл ключом, а затем сможет выполнить этот зашифрованный файл, сначала расшифровав его, а затем выполнив его (и я не хочу иметь копию расшифрованного файла в файловой системе).