interrupt.c

来自「Rootkit upload by benina rea」· C语言 代码 · 共 58 行

C
58
字号
/*
 *	PatchFinder for Windows 2000
 *	Joanna Rutkowska, joanna at mailsnare dot net
 *	(c) 2003
 *
 */

#include "interrupt.h"

int getIntHandler (int vec) {
	IDTR idtr;
	PIDTGATE idt;

	__asm {
		sidt idtr;
	}

	idt = (PIDTGATE) idtr.base;
	
	return  (idt[vec].off2<<16) +
		(idt[vec].off1);
}

int getIntGateAddr (int vec) {
	IDTR idtr;
	PIDTGATE idt;

	__asm {
		sidt idtr;
	}

	idt = (PIDTGATE) idtr.base;
	
	return  (int)&idt[vec];
}


void setIntHandler (int vec, int newHandler) {
	IDTR idtr;
	PIDTGATE idt;

	__asm {
		cli;
		sidt idtr;
	}

	idt = (PIDTGATE) idtr.base;
	
	idt[vec].off2 = newHandler >> 16;
	idt[vec].off1 = newHandler & 0xffff;
	
	__asm{
		sti;
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?