在winxp下如何拦截int 3?

wyh4030 2004-06-10 07:11:56
在winxp下如何拦截int 3?
...全文
135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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试一下

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧