2010-04-01 2 views
1

Можно ли читать двоичный файл в рубиновом файле и выполнять его непосредственно в памяти?Ruby: выполнить двоичный файл в памяти?

, например что-то вроде этого:

x = IO.read('/bin/ls') 
execute(x) 

Я попытался system(x), но это дает: ArgumentError: string contains null byte

+2

Пожалуйста, добавьте информацию о том, что вы пытаетесь установить с этим? Вероятно, есть лучшее решение ... – hurikhan77

+0

Я просто хочу загрузить программный байтовый код и выполнить его из памяти вместо жесткого диска. Он похож на system() и exec(), но я хочу сделать то же самое, передав программу, загруженную в память, в систему вместо жесткого диска. – John

ответ

0

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

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

+0

не можем ли мы сделать что-то похожее на eval(), но для байтового кода или кода asm? – John

Смежные вопросы