亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mwm.c

?? linux下IDS軟件,來源于snort社團.
?? C
?? 第 1 頁 / 共 3 頁
字號:
  Tleft = n;  Tend  = Tx + n;  /* Test if text is shorter than the shortest pattern */  if( (unsigned)n < ps->msShiftLen )      return 0;  /*  Process each suffix of the Text, left to right, incrementing T so T = S[j] */  for( T = Tx, B = Tx + ps->msShiftLen - 1; B < Tend; T++, B++, Tleft-- )  {     /* Multi-Pattern Bad Word Shift */     tshift = ps->msShift2[ ((*B)<<8) | *(B-1) ];     while( tshift )      {        B     += tshift;  T += tshift; Tleft -= tshift;        if( B >= Tend ) return nfound;        tshift = ps->msShift2[ ((*B)<<8) | *(B-1) ];     }     /* Test for last char in Text, we are done, one byte pattern test was done above. */     if( Tleft == 1 ) return nfound;      /* Test if the 2 char prefix of this suffix shows up in the hash table */     if( (index = ps->msHash [ ( (*T)<<8 ) | *(T+1) ] ) == (HASH_TYPE)-1 )         continue;      /* Match this group against the current suffix */     ng = mwmGroupMatch2( ps, index,Tx, T, Tc, Tleft, data, match );     if( ng < 0 )     {         ng = -ng;         ng--;         nfound += ng;         return nfound;     }     else     {        nfound += ng;     }  }  return nfound;}/* Display function for testing */static void show_bytes(unsigned n, unsigned char *p){    int i;    for(i=0;i<(int)n;i++)    {       if( p[i] >=32 && p[i]<=127 )printf("%c",p[i]);       else printf("\\x%2.2X",p[i]);    }  }/***   Display patterns in this group*/void mwmGroupDetails( void * pv ){   MWM_STRUCT * ps = (MWM_STRUCT*)pv;   int index,i, m, gmax=0, total=0,gavg=0,subgroups;   static int k=0;   MWM_PATTERN_STRUCT *patrn, *patrnEnd;    printf("*** MWM-Pattern-Group: %d\n",k++);     subgroups=0;       for(i=0;i<65536;i++)    {       if( (index = ps->msHash [i]) == (HASH_TYPE)-1 )           continue; 	          patrn    = &ps->msPatArray[index];       /* 1st pattern of hash group is here */       patrnEnd = patrn + ps->msNumArray[index];/* never go here... */           printf("  Sub-Pattern-Group: %d-%d\n",subgroups,i);              subgroups++;              for( m=0; patrn < patrnEnd; m++, patrn++ )  /* Test all patterns in the group */       {          printf("   Pattern[%d] : ",m);	  show_bytes(patrn->psLen,patrn->psPat);	  	  printf("\n");       }                if( m > gmax ) gmax = m;              total+=m;              gavg = total / subgroups;    }        printf("Total Group Patterns    : %d\n",total);    printf("  Number of Sub-Groups  : %d\n",subgroups);    printf("  Sub-Group Max Patterns: %d\n",gmax);    printf("  Sub-Group Avg Patterns: %d\n",gavg);}      /***** mwmPrepPatterns::    Prepare the pattern group for searching***/int mwmPrepPatterns( void * pv ){   MWM_STRUCT * ps = (MWM_STRUCT *) pv;   int kk;   MWM_PATTERN_STRUCT * plist;   /* Build an array of pointers to the list of Pattern nodes */   ps->msPatArray = (MWM_PATTERN_STRUCT*)calloc( sizeof(MWM_PATTERN_STRUCT), ps->msNumPatterns );   if( !ps->msPatArray )    {         return -1;    }   ps->msNumArray = (unsigned short *)calloc( sizeof(short), ps->msNumPatterns  );   if( !ps->msNumArray )    {         return -1;    }   /* Copy the list node info into the Array */   for( kk=0, plist = ps->plist; plist!=NULL && kk < ps->msNumPatterns; plist=plist->next )   {        memcpy( &ps->msPatArray[kk++], plist, sizeof(MWM_PATTERN_STRUCT) );   }     mwmAnalyzePattens( ps );  /* Sort the patterns */  qsort( ps->msPatArray, ps->msNumPatterns, sizeof(MWM_PATTERN_STRUCT), sortcmp );   /* Build the Hash table, and pattern groups, per Wu & Manber */  mwmPrepHashedPatternGroups(ps);  /* Select the Pattern Matcher Class */  if( ps->msNumPatterns < 5 )  {     ps->msMethod =  MTH_BM;  }  else  {     ps->msMethod =  MTH_MWM;  }   /* Setup Wu-Manber */  if( ps->msMethod == MTH_MWM )  {      /* Build the Bad Char Shift Table per Wu & Manber */      mwmPrepBadCharTable(ps);     /* Build the Bad Word Shift Table per Wu & Manber */     if( (ps->msShiftLen > 1) && ps->msLargeShifts )      {       mbmPrepBadWordTable( ps );     }     /* Min patterns is 1 byte */     if( ps->msShiftLen == 1 )      {        ps->search =  mwmSearchExNoBC;     }     /* Min patterns is >1 byte */     else if( (ps->msShiftLen >  1) && !ps->msLargeShifts )      {      ps->search =  mwmSearchExBC;     }     /* Min patterns is >1 byte - and we've been asked to use a 2 byte bad words shift instead. */     else if( (ps->msShiftLen >  1) && ps->msLargeShifts && ps->msShift2 )      {      ps->search =  mwmSearchExBW;     }     /* Min patterns is >1 byte */     else     {        ps->search =  mwmSearchExBC;     }#ifdef XXXX          // if( ps->msDetails )   /* For testing - show this info */    //    mwmGroupDetails( ps );#endif   }   /* Initialize the Boyer-Moore Pattern data */   if( ps->msMethod == MTH_BM )   {       int i;       /* Allocate and initialize the BMH data for each pattern */       for(i=0;i<ps->msNumPatterns;i++)       {           ps->msPatArray[ i ].psBmh = hbm_prep( ps->msPatArray[ i ].psPat, ps->msPatArray[ i ].psLen );       }      }   return 0;}/*** Search a body of text or data for paterns */int mwmSearch( void * pv,               unsigned char * T, int n,  int(*match)( void * id,  int index, void * data ),               void * data ){      MWM_STRUCT * ps = (MWM_STRUCT*)pv;      unsigned char *s;      iPatCount += n;      ConvCaseToUpperEx( S, T, n ); /* Copy and Convert to Upper Case */      if( ps->msMethod == MTH_BM )      {         /* Boyer-Moore  */         int i,nfound=0;         unsigned char * Tx = NULL;         for( i=0; i<ps->msNumPatterns; i++ )         {            s = &S[0];  /* Init this for each pattern we search */            do            {                Tx = hbm_match( ps->msPatArray[i].psBmh, s, n );                if( Tx )                {                   /* If we are case sensitive, do a final exact match test */                   if( !ps->msPatArray[i].psNoCase )                   {                     if( memcmp(ps->msPatArray[i].psPatCase,&T[Tx-S],ps->msPatArray[i].psLen) )                     {                         if (++Tx < s + n)                         {                            n--;                            s++;                         }                         else                         {                             n = 0;                         }                         continue; /* no match, continue with this pattern,                                      or next if n == 0 */                     }                   }                   nfound++;                     if( match(ps->msPatArray[i].psID, (int)(Tx-S),data) )                      return nfound;                }                break; /* on to next pattern */            } while (n >= 0);         }         return nfound;      }      else /* MTH_MWM */      {         /* Wu-Manber */         return ps->search( ps, S, n, T, match, data );      }}/****/void mwmFeatures(void){   printf("%s\n",MWM_FEATURES);}#ifdef MWM_MAINint FatalError( char * s ){   printf("FatalError: %s\n",s);   exit(0);}/*    global array of pattern pointers feeds of of ID..see argv parseing...*/char * patArray[10000];/*** Routine to process matches*/static int match (  void* id, int index, void * data ){   printf(" pattern matched: index= %d, id=%d, %s \n",   index, id, patArray[(int)id]  );   return 0;}/**/typedef struct{  unsigned char * b;  int blen;}BINARY;/**/int gethex( int c ){      if( c >= 'A' && c <= 'F' ) return c -'A' + 10;   if( c >= 'a' && c <= 'f' ) return c -'a' + 10;   if( c >= '0' && c <= '9' ) return c -'0';   return 0;}/**/BINARY  * converthexbytes( unsigned char * s){   int      val, k=0, m;   BINARY * p;   int      len = strlen(s);   printf("--input hex: %s\n",s);      p = malloc( sizeof(BINARY) );   p->b   = malloc( len / 2 );   p->blen= len / 2;   while( *s )   {      val   = gethex(*s);      s++;      val <<= 4;      if( !*s ) break; // check that we have 2 digits for hex, else ignore the 1st      val |= gethex(*s);      s++;      p->b[k++] = val;   }   if( k != p->blen )   {      printf("hex length mismatch\n");   }   printf("--output hex[%d]: ",p->blen); for(m=0;m<p->blen;m++) printf("%2.2x", p->b[m]);   printf(" \n");   return p;}/*   Synthetic data*/BINARY * syndata( int nbytes, int irand, int repchar ){   BINARY * p =(BINARY*)malloc( sizeof(BINARY) );   if( ! p ) return 0;    p->b    = (unsigned char *)malloc( nbytes );   if( ! p->b ) return 0;   p->blen = nbytes;   if( irand )   {     int i;     srand( time(0) );     for(i=0;i<nbytes;i++)     {        p->b[i] = (unsigned)( rand() & 0xff );     }   }   else   {       memset(p->b,repchar,nbytes);   }   return p;}/**/int randpat( unsigned char * s, int imin ){    int i,len;    static int first=1;    if( first )    {       first=0;       srand(time(0));    }    while( 1 )    {       len = rand() & 0xf; //max of 15 bytes        if( len >= imin ) break;    }        for(i=0;i<len;i++)    {        s[i] = 'a' + ( rand() % 26 ); // a-z    }    s[len]=0;    printf("--%s\n",s);    return len;}/*** Test driver */int CDECL main ( int argc, char ** argv ){   unsigned char *T, *text;   int            n,textlen;    int            nmatches, i, bm = 0;   MWM_STRUCT    *ps;   int            npats=0, len, stat, nocase=0;   BINARY        *p;   int            irep=0,irand=0,isyn=0,nrep=1024,repchar=0;   if( argc < 5 )   {      printf("usage: %s [-rand|-rep -n bytes -c|ch repchar -pr npats minlen ] -t|th TextToSearch -nocase [-pr numpats] -p|ph pat1 -p|ph pat2 -p|ph pat3\n",argv[0]);      exit(1);   }   /* -- Allocate a Pattern Matching Structure - and Init it. */   ps = mwmNew();   for(i=1;i<argc;i++)   {       if( strcmp(argv[i],"-nocase")==0 )       {          nocase = 1;       }       if( strcmp(argv[i],"-p")==0 )       {          i++;          npats++;          patArray[npats] = argv[i];          len = strlen( argv[i] );          mwmAddPatternEx( ps, (unsigned char*)argv[i], len, nocase, 0, 0, (void*)npats /* ID */, 3000 /* IID -internal id*/ );       }       if( strcmp(argv[i],"-ph")==0 )       {          i++;          npats++;          patArray[npats] = argv[i];          p = converthexbytes( argv[i] );          mwmAddPatternEx( ps, p->b, p->blen, 1 /* nocase*/, 0, 0, (void*)npats /* ID */, 3000 /* IID -internal id*/ );       }       if( strcmp(argv[i],"-pr")==0 )       {          int m = atoi( argv[++i] );          int imin = atoi( argv[++i] );          int k;          npats = 0;          for(k=0;k<m;k++)          {             unsigned char px[256];             int           len = randpat( px, imin );             npats++;             patArray[npats] = (unsigned char *)malloc( len+1 );             sprintf(patArray[npats],"%s",px);             mwmAddPatternEx( ps, px, len, 0 /* nocase*/, 0, 0, (void*)npats /* ID */, 3000 /* IID -internal id*/ );          }       }       if( strcmp(argv[i],"-rand")==0 )       {          irand = 1;          isyn  = 1;       }       if( strcmp(argv[i],"-rep")==0 )       {          irep  = 1;          isyn  = 1;       }       if( strcmp(argv[i],"-n")==0 )       {          nrep = atoi( argv[++i] );          isyn  = 1;       }       if( strcmp(argv[i],"-c")==0 )       {          repchar = argv[++i][0];          isyn  = 1;       }       if( strcmp(argv[i],"-ch")==0 )       {          BINARY * px = converthexbytes( argv[++i] );          repchar = px->b[0];          isyn  = 1;       }       if( strcmp(argv[i],"-t")==0 )       {          i++;          text = argv[i];          textlen=strlen(text);       }       if( strcmp(argv[i],"-th")==0 )       {           i++;           p = converthexbytes( argv[i] );           text = p->b;           textlen = p->blen;       }   }   /* generate synthetic text */   if( isyn )   {               p = syndata( nrep, irand, repchar );       text = p->b;       textlen = p->blen;   }   /* --- Preprocess Patterns */   mwmPrepPatterns( ps );     /* ---- Do a multi-pattern search in the Text */   stat = mwmSearch( (void*)ps, (unsigned char*)text, textlen, match, 0 );    if( stat == 0 )   {       printf("no pattern matches\n");   }else{       printf("%d pattern matches in list\n",stat);   }   return 0;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av免费在线播放| 欧洲生活片亚洲生活在线观看| 国产成人啪午夜精品网站男同| 91美女片黄在线观看91美女| 日韩一区二区三| 亚洲视频精选在线| 加勒比av一区二区| 欧美日韩精品电影| 亚洲激情成人在线| 成人精品亚洲人成在线| 亚洲精品一区二区三区影院| 亚洲国产精品一区二区www在线| 国产精品18久久久久久久久久久久| 欧美亚州韩日在线看免费版国语版| 欧美国产丝袜视频| 国产麻豆精品久久一二三| 日韩视频永久免费| 丝袜美腿亚洲一区| 欧美自拍丝袜亚洲| 亚洲卡通动漫在线| 99国产精品国产精品久久| 久久久99免费| 久久成人羞羞网站| 欧美一级日韩免费不卡| 一区二区成人在线| 97se亚洲国产综合自在线观| 国产欧美一区二区精品性色| 国产一区二区在线观看视频| 日韩三级高清在线| 青娱乐精品视频| 日韩一区二区在线观看视频播放| 天天做天天摸天天爽国产一区 | 91原创在线视频| 一个色综合网站| 国产精品久久久久四虎| 国产91在线|亚洲| 国产在线播放一区| 久久久久久日产精品| 韩国一区二区在线观看| 久久久99久久| 成人网在线免费视频| 国产精品成人免费精品自在线观看| 成人免费看片app下载| 国产精品免费视频观看| 91女人视频在线观看| 一区二区三区在线观看动漫| 欧美日韩久久久一区| 日韩av高清在线观看| 久久奇米777| 99精品视频在线免费观看| 亚洲青青青在线视频| 欧美日韩在线播放三区四区| 亚洲6080在线| 久久久久久久久久久99999| 99精品视频在线播放观看| 欧美三级在线播放| av在线一区二区| 午夜伦欧美伦电影理论片| 欧美电影免费观看高清完整版在线| 久久99国产精品麻豆| 国产精品久久久久一区二区三区 | 国产一区二区三区四| 一色桃子久久精品亚洲| 欧美嫩在线观看| 国产成人精品一区二区三区四区| 亚洲理论在线观看| 2020国产精品| 91福利精品第一导航| 免费高清视频精品| 亚洲视频电影在线| 日韩免费观看高清完整版| 91免费在线视频观看| 精品中文字幕一区二区| 一区二区三区在线免费观看| 精品88久久久久88久久久| 91久久人澡人人添人人爽欧美| 麻豆一区二区三| 一区二区成人在线视频| 国产欧美日韩亚州综合| 欧美精品丝袜久久久中文字幕| 国产成人在线视频网站| 日韩精品午夜视频| 亚洲欧美日韩系列| 久久久久综合网| 6080yy午夜一二三区久久| 成人免费视频视频| 经典三级视频一区| 亚洲妇熟xx妇色黄| 亚洲美女电影在线| 国产精品欧美一区喷水| 欧美va亚洲va| 欧美顶级少妇做爰| 色婷婷av久久久久久久| av一二三不卡影片| 国产99久久久久| 国产麻豆精品95视频| 久久丁香综合五月国产三级网站| 偷拍亚洲欧洲综合| 亚洲一区二区三区在线| 一区二区三区在线视频观看| 国产精品久久久久影院亚瑟| 中文字幕+乱码+中文字幕一区| 精品国偷自产国产一区| 日韩精品一区二区三区在线| 欧美精品自拍偷拍| 欧美精品久久一区二区三区| 欧美性猛交xxxxxxxx| 日本高清不卡视频| 在线视频你懂得一区| 91蜜桃视频在线| 色狠狠一区二区三区香蕉| 91麻豆免费视频| 色先锋资源久久综合| 91麻豆国产精品久久| 91日韩精品一区| 色国产综合视频| 欧美体内she精高潮| 欧美三级日韩在线| 91精品国产日韩91久久久久久| 欧美精品精品一区| 日韩午夜av一区| 精品国产乱码久久久久久蜜臀| 欧美va在线播放| 国产日产精品1区| 综合在线观看色| 亚洲成人免费视频| 美女视频黄 久久| 国产精品1024| 色婷婷综合中文久久一本| 欧美午夜寂寞影院| 亚洲人123区| 亚洲国产日韩综合久久精品| 日韩专区一卡二卡| 国产精品一区二区三区网站| 成人va在线观看| 欧美性大战久久久| 欧美tickling网站挠脚心| 国产亚洲一二三区| 亚洲美女区一区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 婷婷综合五月天| 精品一区二区免费| 99国产精品久久久久久久久久久| 在线观看日韩国产| 精品国产伦一区二区三区观看方式 | 亚洲精品一区二区三区四区高清| 国产精品私房写真福利视频| 亚洲精品成人悠悠色影视| 日日夜夜免费精品| 成人在线一区二区三区| 欧美高清dvd| 中文字幕巨乱亚洲| 五月天亚洲精品| 成人av网在线| 日韩一级二级三级| 亚洲男人天堂av网| 韩国一区二区视频| 欧美揉bbbbb揉bbbbb| 国产欧美日韩视频一区二区| 丝袜美腿成人在线| 91免费观看视频| 久久久亚洲综合| 天天综合网 天天综合色| 不卡av在线网| 久久看人人爽人人| 免费看欧美美女黄的网站| 色综合久久88色综合天天| www国产精品av| 日本美女视频一区二区| 91热门视频在线观看| 欧美经典三级视频一区二区三区| 日韩电影免费一区| 色国产精品一区在线观看| 国产精品网友自拍| 久久精品99国产精品日本| 欧美丰满少妇xxxxx高潮对白| 国产精品美女www爽爽爽| 狠狠狠色丁香婷婷综合激情 | 99精品视频一区| 国产午夜精品理论片a级大结局| 午夜视频一区在线观看| 色伊人久久综合中文字幕| 国产精品另类一区| 成人丝袜高跟foot| 国产视频一区二区在线观看| 久久精品99国产国产精| 91精品国产手机| 日韩精品免费视频人成| 欧美日韩一区二区三区免费看 | 在线观看不卡一区| 亚洲色图欧洲色图婷婷| 成人av集中营| √…a在线天堂一区| 北岛玲一区二区三区四区| 国产精品网站导航| 99久久综合国产精品| 亚洲人午夜精品天堂一二香蕉| 成人动漫视频在线| 综合久久综合久久| 色哟哟欧美精品|