由于COM盾的调用采用函数指针数组,不同的函数数组号就不同。
即fnArray[Tab[x]](…);
这样就给了COM盾对函数的集体捕捉能力,即
fnArray[Dog(Tab[x])];//接管入口
令:
bool DogEnable=false;//禁止看门狗计数
int Dog(int tabx){
DogEnable = true;//使能看门狗计数
return tabx;//返还
}
线程(在安装程序过程中偷偷安装线程)
int DogCount=0;//局部变量,线程外看不见
while(总标志){//注册期间运行
sleep(1);让出控制权
if(!DogEnable){
DogCount=0;//看门狗清零
}
else{
DogCount=++;//看门狗计数
if(DogCount=maxDogCnt){
//有人跟踪
for(int i=0;i<PolyArray.length();i++)
{//摧毁权值数组
PolyArray[i]++;
}
for(int j=0;j<16;j++)
{//摧毁COM16
}
for(int k=0;k<32;k++)
{//摧毁COM32
}
}
}
|