feat: чтение регистра таблицы прерываний

This commit is contained in:
root
2024-10-17 01:02:59 +03:00
parent 68c5f8388b
commit eb85d6dd9a
2 changed files with 13 additions and 10 deletions

View File

@ -1,21 +1,23 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/desc.h>
typedef struct { extern void store_idt(struct desc_ptr *storage);
uint16_t size;
uint64_t adress;
} Fuck_IDT_register;
extern void store_idt(Fuck_IDT_register *storage);
static int __init fuck_system(void) static int __init fuck_system(void)
{ {
pr_info("start to fuck system"); pr_info("start to fuck system");
struct desc_ptr newidtr;
gate_desc *oldint, *newint; struct desc_ptr newidtreg;
Fuck_IDT_register idt_register; struct desc_ptr oldidtreg;
store_idt(&idt_register); 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"); pr_info("idt register stored");
return 0; return 0;
} }

View File

@ -5,3 +5,4 @@ section .text
store_idt: ; rdi - указатель store_idt: ; rdi - указатель
sidt [rdi] sidt [rdi]
ret ret
int3