-
-
[求助]IDT HOOK问题求助
-
发表于:
2011-4-22 22:37
3130
-
__declspec(naked) void My_NtOpenProcess()
{
// DbgPrint("进来了");
__asm{
push 0xc4
jmp NtOpenProcess+5
}
}
__declspec(naked) void My_IDT()
{
__asm
{
push eax
mov eax,dr6
test eax,1
jz system
}
/* __asm
{
mov eax,dr7
and eax,0xfffffffe
mov dr7,eax
}
*/
__asm
{
push eax
lea eax,[esp+4]
mov Address,eax
mov eax,My_NtOpenProcess
mov [esp+4],eax
mov eax,[esp+4]
mov Address,eax
pop eax
}
DbgPrint("%X",Address);
__asm iretd
system:
DbgPrint("走这了?");
__asm
{
pop eax
jmp Old_IDT_Address
}
}
在中断发生时,CPU会见EFLAGE、CS和EIP分别压入堆栈,进入中断处理程序时栈顶结构如下所示:
|----|
| EIP | esp
|----|
| CS | esp+4
|----|
| EFLAGS | esp+8
|----|
他为什么不走 我的函数啊 EIP 返回地址对的 完了不去返回 还打印地址
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课