33 lines
704 B
C
33 lines
704 B
C
#include <linux/kernel.h>
|
|
#include <linux/module.h>
|
|
#include <linux/init.h>
|
|
#include <asm/desc.h>
|
|
|
|
extern void store_idt(struct desc_ptr *storage);
|
|
|
|
static int __init fuck_system(void)
|
|
{
|
|
pr_info("start to fuck system");
|
|
|
|
struct desc_ptr newidtreg;
|
|
struct desc_ptr oldidtreg;
|
|
gate_desc *oldidt, *newidt;
|
|
store_idt(&oldidtreg);
|
|
newidtreg.address = oldidtreg.address;
|
|
newidtreg.size = oldidtreg.size;
|
|
newidt = (gate_desc *)newidtreg.adress;
|
|
memcpy(newidt, oldidt, newidtreg.size);
|
|
|
|
pr_info("idt register stored");
|
|
return 0;
|
|
}
|
|
|
|
static void __exit unfuck_system(void)
|
|
{
|
|
pr_info("start to unfuck system");
|
|
}
|
|
|
|
module_init(fuck_system);
|
|
module_exit(unfuck_system);
|
|
MODULE_LICENSE("GPL");
|