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

View File

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