Написание и выполнение файла из ядра 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

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