idt@x0q.net
exclusiv.
idt@x0q.net
ip logged 4 research purposes.
idt[0x80] = original_entry;
uint64_t* idt = (uint64_t*)idtr.base;
__asm__ volatile ("sidt %0" : "=m"(idtr));
// entry 0x80 — watch the trapdoor
hdnler_addy & 0xFFFFFFFFFFFF;
extern "C" void hdnler();
uint64_t original_entry = idt[0x80];
idt[0x80] = (original_entry & 0xFFFF000000000000) | (hdnler_addy);
struct idtr_t { unsigned short limit; unsigned long base; } __attribute__((packed));
// only in ring 0. do not wake them.
idtr_t idtr;
// it returns with no warning
sidt %0