11#include " Attack.h"
22
33Attack::Attack () {
4- randomSeed (os_random ());
54}
65
76void Attack::generate () {
@@ -13,8 +12,7 @@ void Attack::generate() {
1312
1413 for (int i = 0 ; i < macListLen; i++) channels[i] = random (1 , maxChannel);
1514 do {
16- getRandomVendorMac (_randomMacBuffer);
17- for (int i = 0 ; i < 6 ; i++) _randomBeaconMac.setAt (_randomMacBuffer[i], i);
15+ _randomBeaconMac.randomize ();
1816 } while (beaconAdrs.add (_randomBeaconMac) >= 0 );
1917 if (debug) Serial.println (" done" );
2018
@@ -162,7 +160,7 @@ void Attack::run() {
162160 if (apScan.isSelected (a)) {
163161 Mac _ap;
164162 int _ch = apScan.getAPChannel (a);
165- _ap.setMac (apScan.aps ._get (a));
163+ _ap.set (apScan.aps ._get (a));
166164
167165 wifi_set_channel (_ch);
168166
@@ -213,11 +211,7 @@ void Attack::run() {
213211 prevTime[1 ] = millis ();
214212
215213 for (int a = 0 ; a < ssidList.len ; a++) {
216- String _ssid = ssidList.get (a);
217- int _ch = channels[a];
218-
219- buildBeacon (beaconAdrs._get (a), _ssid, _ch, settings.attackEncrypted );
220-
214+ buildBeacon (beaconAdrs._get (a), ssidList.get (a), channels[a], ssidList.isEncrypted (a));
221215 if (send ()) packetsCounter[1 ]++;
222216 }
223217
@@ -287,7 +281,8 @@ void Attack::start(int num) {
287281 attackTimeoutCounter[num] = 0 ;
288282 refreshLed ();
289283 if (debug) Serial.println (" starting " + (String)attackNames[num] + " attack..." );
290- if (num == 0 ) attackMode = " STOP" ;
284+ if (num == 0 ) attackMode_deauth = " STOP" ;
285+ else if (num == 1 ) attackMode_beacon = " STOP" ;
291286 if (!settings.multiAttacks ){
292287 for (int i = 0 ; i < attacksNum; i++){
293288 if (i != num) stop (i);
@@ -299,7 +294,8 @@ void Attack::start(int num) {
299294void Attack::stop (int num) {
300295 if (isRunning[num]) {
301296 if (debug) Serial.println (" stopping " + (String)attackNames[num] + " attack..." );
302- if (num == 0 ) attackMode = " START" ;
297+ if (num == 0 ) attackMode_deauth = " START" ;
298+ else if (num == 1 ) attackMode_beacon = " START" ;
303299 isRunning[num] = false ;
304300 prevTime[num] = millis ();
305301 refreshLed ();
@@ -317,7 +313,7 @@ void Attack::_log(int num){
317313 for (int a=0 ;a<apScan.results ;a++){
318314 if (apScan.isSelected (a)){
319315 Mac _ap;
320- _ap.setMac (apScan.aps ._get (a));
316+ _ap.set (apScan.aps ._get (a));
321317 addLog (_ap.toString ());
322318 }
323319 }
@@ -378,7 +374,11 @@ size_t Attack::getSize(){
378374 json = " \" ssid\" :[" ;
379375 jsonSize += json.length ();
380376 for (int i = 0 ; i < ssidList.len ; i++) {
381- json = " \" " + ssidList.get (i) + " \" " ;
377+ json = " [" ;
378+ json += " \" " + ssidList.get (i) + " \" ," ;
379+ json += String ( ssidList.isEncrypted (i) ) + " " ;
380+ Serial.print (ssidList.isEncrypted (i));
381+ json += " ]" ;
382382 if (i != ssidList.len - 1 ) json += " ," ;
383383 jsonSize += json.length ();
384384 }
@@ -439,7 +439,10 @@ void Attack::sendResults(){
439439 json = " \" ssid\" :[" ;
440440 sendToBuffer (json);
441441 for (int i = 0 ; i < ssidList.len ; i++) {
442- json = " \" " + ssidList.get (i) + " \" " ;
442+ json = " [" ;
443+ json += " \" " + ssidList.get (i) + " \" ," ;
444+ json += (String)ssidList.isEncrypted (i) + " " ;
445+ json += " ]" ;
443446 if (i != ssidList.len - 1 ) json += " ," ;
444447 sendToBuffer (json);
445448 }
@@ -463,11 +466,11 @@ void Attack::refreshLed() {
463466 }
464467 if (numberRunning >= 1 && settings.useLed ) {
465468 if (debug) Serial.println (" Attack LED : ON" );
466- digitalWrite (settings.ledPin , LOW );
469+ digitalWrite (settings.ledPin , !settings. pinStateOff );
467470 }
468471 else if (numberRunning == 0 || !settings.useLed ) {
469472 if (debug) Serial.println (" Attack LED : OFF" );
470- digitalWrite (settings.ledPin , HIGH );
473+ digitalWrite (settings.ledPin , settings. pinStateOff );
471474 }
472475}
473476
0 commit comments