if(ACLContains(&Unit.GlobalACL, CheckID))
{
if(ACLContains(LocalACL, CheckID))
{
if(LocalACL->IsExclusive)
return FALSE;
}
else
{
if(!LocalACL->IsExclusive)
return FALSE;
}
return !Unit.GlobalACL.IsExclusive;
}
else
{
if(ACLContains(LocalACL, CheckID))
{
if(LocalACL->IsExclusive)
return FALSE;
}
else
{
if(!LocalACL->IsExclusive)
return FALSE;
}
return Unit.GlobalACL.IsExclusive;
}if(ACLContains(&Unit.GlobalACL, CheckID)) 全局ACL中存在PID(1234)
{
if(ACLContains(LocalACL, CheckID)) 本地不存在
{
if(LocalACL->IsExclusive)
return FALSE;
}
else
{
if(!LocalACL->IsExclusive) 本地的为排除,因此LocalACL->IsExclusive=true
return FALSE;
}
return !Unit.GlobalACL.IsExclusive; 全局为排余,因此Unit.GlobalACL.IsExclusive=true
}
else
{
if(ACLContains(LocalACL, CheckID))
{
if(LocalACL->IsExclusive)
return FALSE;
}
else
{
if(!LocalACL->IsExclusive)
return FALSE;
}
return Unit.GlobalACL.IsExclusive;
}根据以上逻辑,返回的结果为False,即对应的线程不生效,即实现了暂停所有的Hook函数 。原文:http://blog.csdn.net/yuzehome/article/details/40590385