您的位置:首页 > 其它

note : get address of KiFastCallEntry

2013-08-18 18:33 253 查看
在开源工程中看到取 KiFastCallEntry 地址, 但是 rdmsr 的参数 0x176, 是个魔法数.

查了资料, 弄清楚了魔法数的含义.

#ifndef IA32_SYSENTER_EIP
#define IA32_SYSENTER_CS 	0x174 ///< The 16-bit selector of a Ring 0 code segment
#define IA32_SYSENTER_EIP 	0x176 ///< The 32-bit offset into a Ring 0 code segment
#define IA32_SYSENTER_ESP	0x175 ///< The 32-bit stack pointer for a Ring 0 stack
#endif  // #ifndef IA32_SYSENTER_EIP


PUCHAR pKiFastCallEntry = NULL;


_asm
	{
		pushad;
		mov ecx, IA32_SYSENTER_EIP;
		rdmsr;  ///< 读 MSR 寄存器
		mov pKiFastCallEntry, eax;
		popad;
	}

	/// 判断是否已经被Hook
	if (0xe9 == *pKiFastCallEntry)
	{
		DbgPrint("Terminate System Thread\n");
		return;
	}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: