"there's a sleeping monster when he got his old skills he's a real monster"
Setelah sekian lama bermasalah akhirnya baru bisa online hari ini. oleh karena itu akan kita mulai kembali permainan kita
yang tertunda tentang wp bit pada register cr0.
cr0 merupakan register kontrol pada x86. WP bit pada cr0 akan menentukan apakah kita bisa melakukan write pada pages
yang bertanda read only atau tidak, untuk bisa melakukan write kita harus mengeset wp bit pada cr0.
Untuk mengetahui wp bit pada register cr0 bisa menggunakan read_cr0 di sini kita bisa melihat penggunaan PVOP_CALL0 pada read_cr0
/usr/include/asm/paravirt.h:
==========
static inline unsigned long read_cr0(void)
{
return PVOP_CALL0(unsigned long, pv_cpu_ops.read_cr0);
}
=========
sedangkan untuk mengeset bit cr0 menjadi unprotected bisa dengan write_cr0
=============
static inline void write_cr0(unsigned long x)
{
PVOP_VCALL1(pv_cpu_ops.write_cr0, x);
}
================
berikut ini contoh penggunaan read_cr0
read_cr0.c
===================
/**read_cr0 test by ev1lut10n**/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/errno.h>
#include <linux/mm.h>
#include <asm/unistd.h>
int readcr0test()
{
unsigned long cr0;
cr0 = read_cr0();
printk("\n%lu",cr0);
return 0;
}
int init_module (void)
{
readcr0test();
return 0;
}