linux下取消页读写保护
来源:互联网 发布:开源 微信公众号 php 编辑:程序博客网 时间:2024/06/05 21:11
Some people modify the page table entry data for read-only pages theywant to modify, but the following functions I have provided are muchsimpler, and an example will be provided below./* FUNCTION TO DISABLE WRITE PROTECT BIT IN CPU */static void disable_wp(void){ unsigned int cr0_value; asm volatile ("movl %%cr0, %0" : "=r" (cr0_value)); /* Disable WP */ cr0_value &= ~(1 << 16); asm volatile ("movl %0, %%cr0" :: "r" (cr0_value));} /* FUNCTION TO RE-ENABLE WRITE PROTECT BIT IN CPU */static void enable_wp(void){ unsigned int cr0_value; asm volatile ("movl %%cr0, %0" : "=r" (cr0_value)); /* Enable WP */ cr0_value |= (1 << 16); asm volatile ("movl %0, %%cr0" :: "r" (cr0_value));}==========================================================================================================================================================int set_page_rw(long unsigned int _addr){ return set_memory_rw(PAGE_ALIGN(_addr) - PAGE_SIZE, 1);}int set_page_ro(long unsigned int _addr){ return set_memory_ro(PAGE_ALIGN(_addr) - PAGE_SIZE, 1);}