Merge pull request #989 from H4W9/MAC_CLI_Command

Add MAC Address CLI commands
This commit is contained in:
Just Call Me Koko
2025-11-24 11:59:34 -05:00
committed by GitHub
2 changed files with 87 additions and 0 deletions

View File

@@ -262,6 +262,10 @@ void CommandLine::runCommand(String input) {
Serial.println(HELP_SAVE_CMD);
Serial.println(HELP_LOAD_CMD);
Serial.println(HELP_JOIN_CMD);
Serial.println(HELP_MAC_CMD_A);
Serial.println(HELP_MAC_CMD_B);
Serial.println(HELP_MAC_CMD_C);
Serial.println(HELP_MAC_CMD_D);
// Bluetooth sniff/scan
#ifdef HAS_BT
@@ -809,6 +813,81 @@ void CommandLine::runCommand(String input) {
}
}
//// MAC Address commands (Added by H4W9_4)
// Generate random MAC for AP
if (cmd_args.get(0) == MAC_CMD_A) {
#ifdef HAS_SCREEN
display_obj.clearScreen();
menu_function_obj.drawStatusBar();
#endif
wifi_scan_obj.RunGenerateRandomMac(true);
}
// Generate random MAC for STA
else if (cmd_args.get(0) == MAC_CMD_B) {
//Serial.println("Setting STA MAC: " + macToString(this->sta_mac));
#ifdef HAS_SCREEN
display_obj.clearScreen();
menu_function_obj.drawStatusBar();
#endif
wifi_scan_obj.RunGenerateRandomMac(false);
}
// Clone MAC for AP
else if (cmd_args.get(0) == MAC_CMD_C) {
int ap_sw = this->argSearch(&cmd_args, "-a"); // APs
if (ap_sw == -1) {
Serial.println("You did not provide a target index");
return;
}
int ap_index = cmd_args.get(ap_sw + 1).toInt();
if ((ap_index < 0) || (ap_index > access_points->size() - 1)) {
Serial.println("The provided index was not in range");
return;
}
if (ap_sw != -1) {
#ifdef HAS_SCREEN
display_obj.clearScreen();
menu_function_obj.drawStatusBar();
#endif
int filter_ap = cmd_args.get(ap_sw + 1).toInt();
wifi_scan_obj.RunSetMac(access_points->get(filter_ap).bssid, true);
}
}
// Clone MAC for STA
else if (cmd_args.get(0) == MAC_CMD_D) {
int cl_sw = this->argSearch(&cmd_args, "-s"); // Stations
if (cl_sw == -1) {
Serial.println("You did not provide a target index");
return;
}
int sta_index = cmd_args.get(cl_sw + 1).toInt();
if ((sta_index < 0) || (sta_index > stations->size() - 1)) {
Serial.println("The provided index was not in range");
return;
}
if (cl_sw != -1) {
#ifdef HAS_SCREEN
display_obj.clearScreen();
menu_function_obj.drawStatusBar();
#endif
int filter_sta = cmd_args.get(cl_sw + 1).toInt();
wifi_scan_obj.RunSetMac(stations->get(filter_sta).mac, false);
}
}
//// End MAC Address commands (Added by H4W9_4)
//// WiFi attack commands
// attack
if (cmd_args.get(0) == ATTACK_CMD) {

View File

@@ -97,6 +97,10 @@ const char PROGMEM SSID_CMD[] = "ssid";
const char PROGMEM SAVE_CMD[] = "save";
const char PROGMEM LOAD_CMD[] = "load";
const char PROGMEM JOIN_CMD[] = "join";
const char PROGMEM MAC_CMD_A[] = "randapmac";
const char PROGMEM MAC_CMD_B[] = "randstamac";
const char PROGMEM MAC_CMD_C[] = "cloneapmac";
const char PROGMEM MAC_CMD_D[] = "clonestamac";
// Bluetooth sniff/scan
const char PROGMEM BT_SPAM_CMD[] = "blespam";
@@ -166,6 +170,10 @@ const char PROGMEM HELP_SSID_CMD_B[] = "ssid -r <index>";
const char PROGMEM HELP_SAVE_CMD[] = "save -a/-s";
const char PROGMEM HELP_LOAD_CMD[] = "load -a/-s";
const char PROGMEM HELP_JOIN_CMD[] = "join -a <index> -p <password>/-s";
const char PROGMEM HELP_MAC_CMD_A[] = "randapmac";
const char PROGMEM HELP_MAC_CMD_B[] = "randstamac";
const char PROGMEM HELP_MAC_CMD_C[] = "cloneapmac [-a <index>]";
const char PROGMEM HELP_MAC_CMD_D[] = "clonestamac [-s <index>]";
// Bluetooth sniff/scan
const char PROGMEM HELP_BT_SNIFF_CMD[] = "sniffbt [-t] <airtag/flipper/flock>";