监测SOFTICE的存在

作者:陆麟
转载请征得作者同意.
1999.7.25


SOFTICE乃一DEBUG工具,乃CRACKER们暴力破解软件的利器.通常的加密软件都要先监测是否有SOFTICE的存在.如果存在,则拒绝执行.
监测SOFTICE的存在.有很多种方法.
在WIN9X下,可以打开\\\\.\\WINICE,如果成功,则SOFTICE驻留,否则,没问题.
在NT下,打开\\\\.\\NTICE,成功,则SOFTICE驻留.当然,SIWVID是更通用的.因为SOFTICE FOR NT和9X都加载了SIWVID驱动程序.
下面的例程又演示了我的另外一种方法.复杂点,但是更隐蔽一点点.目前仅在NT下测试过.
 char result[1000];
 char *p;
 ZeroMemory(result,1000);
 QueryDosDevice(0,result,999);
 p=result;
 while(*p){
  if (!stricmp("ntICE",p)){
    //we find softice, do something here
    break;
  }
  p+=strlen(p);
  p++;
 }
这段例程里是我早上临时写的,没有错误监测,需要的朋友请自己加上去.