• 全部
  • 问答

在winxp下如何拦截int 3?

wyh4030 2004-06-10 07:11:56
在winxp下如何拦截int 3?
...全文
117 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sh210 2004-06-13
MOV EDI, [EDI + 4]_________应该为mov edi,[esi+4]
MOV DI, WORD PTR [ESI]
回复
atm2001 2004-06-13
记得在DriverUnload中恢复阿...
具体你自己想吧
好了...
方法::
广域定义::
void* pOrgIntHandler;
DriverEntry中
pOrgIntHandler=HookInt(3,Int3Handler);
DriverDispatch自己写吧
DriverUnload中
HookInt(3,pOrgIntHandle);
回复
atm2001 2004-06-13
写点主要代码给你好了,怎样?
在驱动主代码中调用HookInt(3,Int3Handler);

void __declspec(naked) Int3Handler()
{
//这里可以写你的Int3处理了...
DbgPrint("INT 3 was called...\n");
__asm IRETD
}

void* HookInt(DWORD iInt, void* pNewHandler)
{
void* pOldHandler;

__asm
{
// disable Ints
PUSHFD
CLI
// get vector pointer
SUB ESP, 4
SIDT [ESP - 2]
POP ESI // ESI -> IDT base
SUB EDX, EDX
MOV EAX, 8
MUL iInt
ADD ESI, EAX // ESI -> target Int vector
// save current handler
MOV EDI, [EDI + 4]
MOV DI, WORD PTR [ESI] // EDI -> old Int handler
MOV pOldHandler, EDI
// modify handler
MOV EBX, pNewHandler
MOV WORD PTR [ESI], BX
ROL EBX, 16
MOV WORD PTR [ESI + 6], BX
// enable ints
POPFD
}

return pOldHandler;
}
回复
atm2001 2004-06-13
写个驱动,然后....赫赫,具体自己想吧...网上资料很多阿
回复
great12 2004-06-11
晕,你调试就会被中断!

或者你用vc或者你用sice
回复
wyh4030 2004-06-11
no,不是的,我是说自己拦截处理啊,我都被你们晕死了,没sice没vc怎么拦截,也就是在dos概念中的中断自己处理啊
回复
zhangze 2004-06-11
bpint 3试一下
回复
发帖
汇编语言
创建于2007-08-27

2.0w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
申请成为版主
帖子事件
创建了帖子
2004-06-10 07:11
社区公告
暂无公告