|
本帖最后由 乔丹二世 于 2010-6-7 17:18 编辑
原帖地址:http://www.m5home.com/bbs/redirect.php?goto=findpost&ptid=3752&pid=18605&fromuid=4282
我觉得这个驱动写得特别垃圾(TA神牛自己也承认这么写可能会蓝屏),于是我稍作改进了一下:
case IOCTL_UnHook:
{
KSPIN_LOCK spinlock;
KIRQL oldirql;
UNHOOK UnHook={0};
memcpy(&UnHook,InputBuffer,sizeof(UNHOOK));
KeInitializeSpinLock(&spinlock);
KeAcquireSpinLock(&spinlock,&oldirql);
MemOpen();
memcpy((PVOID)UnHook.TarAddr,UnHook.OrigiData,UnHook.Length);
MemClose();
KeReleaseSpinLock(&spinlock, oldirql);
ntStatus = STATUS_SUCCESS;
break;
}
其实也没怎么样,就是增加了一个自旋锁,这样的话蓝屏的可能性大大降低了(虽然还是有蓝屏的风险)。 |
|