Написание и выполнение файла из ядра LinuxLinux

Ответить
Anonymous
 Написание и выполнение файла из ядра Linux

Сообщение Anonymous »

Мне нужно написать (изменить) исполняемый файл, а затем выполнить его с помощью системного вызова Linux. Я попытался создать (открыть) файл, записать в него запись, закрыть его и затем выполнить. Проблема в том, что при попытке выполнения счетчик записей в файл по-прежнему равен единице, даже если файл был закрыт. Вот фрагмент нового системного вызова, запущенного в режиме ядра, который должен достичь этой цели.

Код: Выделить всё

destfile = filp_open(destfilename, O_WRONLY | O_TRUNC | O_CREAT, 0755);
if (IS_ERR(destfile)) {
pr_err("Failed to open file: %s\n", destfilename);
filp_close(sourcefile, NULL);
return PTR_ERR(destfile);
}

// write data to the file

filp_close(destfile, NULL);

kernel_execve(destfilename, {destfilename, NULL}, {NULL});
Проблема заключается в том, что при попытке kernel_execve файл writecount является одним из них, и это предотвращает выполняемый файл. Между Close и Exec выполняется файл, однако последующие вызовы не позволят изменять файл.

Подробнее здесь: https://stackoverflow.com/questions/797 ... nux-kernel
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»