LINUX.ORG.RU

Смена атрибута страницы памяти.


0

0

Доброй ночи. Возникла необходимость изменять таблицу системных вызовов. Но в последних версиях ядер она, по умолчанию, доступна только для чтения. Поэтому я, после получения адреса таблицы в памяти, решил изменить атрибут страницы, содержащей таблицу. Для изменения атрибутов можно использовать этот код:

int set_page_rw(long unsigned _addr)
{
   	struct page *pg;
   	pgprot_t prot;

	//get real memory page from virtual address
   	pg = virt_to_page(_addr);

	//set attributes (read/write)
   	prot.pgprot = VM_READ | VM_WRITE;

   	return change_page_attr(pg, 1, prot);
}

Вся проблема заключается в том, что вызов change_page_attr устарел и удален, начиная еще с 24-го ядра. Хотелось бы узнать, как можно, другими методами, поменять атрибут страницы памяти. Спасибо.

int set_memory_rw(unsigned long addr, int numpages);

оно?

arsi ★★★★★
()

sys_mprotect?

mv ★★★★★
()

>Возникла необходимость изменять таблицу системных вызовов.

Вырусы пишешь, что ли?

Pavval ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.