]> git.pld-linux.org Git - packages/aircrack.git/blob - aircrack-v2.1_speed.patch
- updated to 2.21
[packages/aircrack.git] / aircrack-v2.1_speed.patch
1 --- aircrack.c.orig     2004-12-14 19:43:39.000000000 +0200
2 +++ aircrack.c  2004-12-14 23:53:24.000000000 +0200
3 @@ -49,6 +49,8 @@ char usage[] =
4  "      -m <maddr> : MAC address to filter usable packets\n"
5  "      -n <nbits> : WEP key length: 64 / 128 / 256 / 512\n"
6  "      -p <nfork> : SMP support: # of processes to start\n"
7 +"      -q <quiet> : quiet mode (less print, more speed)\n"
8 +"      -u <sec's> : screen update only x seconds (default = each)\n"
9  "\n";
10  
11  /* command-line parameters */
12 @@ -61,6 +63,10 @@ unsigned char maddr[6];         /* MAC a
13  int weplen = 13;                /* WEP key length       */
14  int ffact  =  2;                /* fudge threshold      */
15  int nfork  =  1;                /* number of forks      */
16 +int quietmode = 3;             /* quiet mode, printf slowdown cracking */
17 +int seconds = 30;              /* update x seconds */
18 +#define MAX_ENTROPY 5
19 +ushort entropy=1,quiet_show=1;
20  
21  /* runtime global data */
22  
23 @@ -295,17 +301,27 @@ void show_stats( int B )
24      struct winsize ws;
25      int i, et_h, et_m, et_s;
26  
27 -    tm_prev = time( NULL );
28 +       /* don't waste time, entropy help check 
29 +         time only once in 5 calls, this save huge amount of ops 
30 +        Entropy also avoids multiply fast printing 
31 +          at matched seconds time. */
32 +
33 +    if( (entropy++) >= MAX_ENTROPY) {  
34 +    tm_prev = time( NULL );    // get -1, 
35      delta = tm_prev - tm_start;
36 +    entropy = 0;
37 +    /* if( ! delta ) delta++;  // Bogus checks, delays us */
38 +    if( (delta % seconds) == 0) quiet_show = 1;
39 +    }
40  
41 +    if(quietmode>=1 && quiet_show == 1 )
42 +    {
43 +     quiet_show = 0;
44      if( ioctl( 0, TIOCGWINSZ, &ws ) < 0 )
45      {
46          ws.ws_row = 25;
47          ws.ws_col = 80;
48      }
49 -
50 -    if( ! delta ) delta++;
51 -
52      et_h =   delta / 3600;
53      et_m = ( delta - et_h * 3600 ) / 60;
54      et_s =   delta - et_h * 3600 - et_m * 60;
55 @@ -320,6 +336,8 @@ void show_stats( int B )
56              "%ld keys at %ld k/m\n", et_h, et_m, et_s, tried,
57              ( 60 * tried ) / delta );
58  
59 +    if(quietmode>1 )
60 +    { // quietmode = 2
61      printf( "\n   KB    depth   votes\n" );
62  
63      for( i = 0; i <= B; i++ )
64 @@ -334,19 +352,21 @@ void show_stats( int B )
65              if( j >= 256 ) break;
66  
67              if( wpoll[i][j].votes == INFINITY )
68 -                printf( "%02X(+inf) ", wpoll[i][j].index );
69 +                { if(quietmode>2) printf( "%02X(+inf) ", wpoll[i][j].index ); }
70              else
71 -                printf( "%02X(%4d) ",  wpoll[i][j].index,
72 -                                       wpoll[i][j].votes );
73 +                { if(quietmode>2) printf( "%02X(%4d) ",  wpoll[i][j].index,
74 +                                       wpoll[i][j].votes ); }
75          }
76  
77 +       /* if(quietmode>2)  */
78          printf( "\n" );
79      }
80  
81      if( B < 11 )
82          printf( "\33[J" );
83 -
84 +   } // end of quietmode = 2 
85      printf( "\n" );
86 +  } // end of quietmode = 1
87  }
88  
89  /* safe I/O routines */
90 @@ -831,9 +851,13 @@ int do_wep_crack( int B )
91              keyfound:
92  
93                  /* we have a valid key */
94 -
95 +               entropy=MAX_ENTROPY;    // hack to show correct time
96 +               quiet_show = 1;         // show lastest status
97                  show_stats( B );
98  
99 +               printf( "\t\t\33[1;32mWEP BSSID = %02X:%02X:%02X:%02X:%02X:%02X\33[0m\n",
100 +                    maddr[0], maddr[1], maddr[2],
101 +                    maddr[3], maddr[4], maddr[5] );
102                  printf( "                 \33[31;1mKEY FOUND! [ " );
103  
104                  for( i = 0; i < weplen; i++ )
105 @@ -893,7 +917,7 @@ int main( int argc, char *argv[] )
106  
107      while( 1 )
108      {
109 -        int option = getopt( argc, argv, "d:f:m:n:p:s:" );
110 +        int option = getopt( argc, argv, "d:f:m:n:p:s:q:u:" );
111  
112          if( option < 0 ) break;
113  
114 @@ -997,6 +1021,26 @@ int main( int argc, char *argv[] )
115  
116                  break;
117  
118 +            case 'q':
119 +
120 +                if( sscanf( optarg, "%d", &quietmode ) != 1 )
121 +                    goto usage;
122 +
123 +                if( quietmode < 0 || quietmode > 3 )
124 +                    goto usage;
125 +
126 +                break;
127 +
128 +            case 'u':
129 +
130 +                if( sscanf( optarg, "%d", &seconds ) != 1 )
131 +                    goto usage;
132 +
133 +                if( seconds <= 1 || seconds >= 3600 )
134 +                  {  printf(" seconds should be between 1...3600\n");
135 +                  seconds=30; }
136 +                break;
137 +
138              default : goto usage;
139          }
140      }
141 @@ -1068,10 +1112,10 @@ int main( int argc, char *argv[] )
142  
143      srand( time( NULL ) );
144  
145 -    tm_start = time( NULL );
146 +    tm_start = time( NULL ) - 1 ; /* avoid check (perv-start) = 0 */
147      tm_prev  = time( NULL );
148  
149 -    printf( "\33[2J" );
150 +    if(quietmode>=1) printf( "\33[2J" );
151      fflush( stdout );
152  
153      return( do_wep_crack( 0 ) );
This page took 0.128643 seconds and 3 git commands to generate.