Add status icon for force pmkid

This commit is contained in:
Just Call Me Koko
2025-06-05 14:04:24 -04:00
parent 61a7449a89
commit 5d2c2d553a
6 changed files with 106 additions and 9 deletions

View File

@@ -224,7 +224,10 @@ PROGMEM static const unsigned char menu_icons[][66] = {
0xFF, 0xF3, 0x3F, 0xFF, 0xFF, 0x3F},
{0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFC, 0xFF, 0xF3, 0x87, 0xF7, // JOINED: 38
0x7F, 0xEE, 0xFF, 0xED, 0xC7, 0xDD, 0xBF, 0xDB, 0x7F, 0xDB, 0x67, 0xDB,
0x67, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
0x67, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0x1F, 0xF8, 0x0F, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, // FORCE: 39
0x67, 0xE6, 0x77, 0xEE, 0x87, 0xE0, 0x8F, 0xF1, 0x0F, 0xF0, 0x4F, 0xF5,
0x1F, 0xF8, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF}
};
/*#ifndef MARAUDER_MINI

View File

@@ -1511,6 +1511,29 @@ void MenuFunctions::updateStatusBar()
TFT_DARKGREY);
#endif
}
// Force PMKID stuff
if (wifi_scan_obj.force_pmkid) {
#ifdef HAS_FULL_SCREEN
display_obj.tft.drawXBitmap(170 - (16 * 2),
0,
menu_icons[FORCE],
16,
16,
STATUSBAR_COLOR,
TFT_GREEN);
#endif
} else {
#ifdef HAS_FULL_SCREEN
display_obj.tft.drawXBitmap(170 - (16 * 2),
0,
menu_icons[FORCE],
16,
16,
STATUSBAR_COLOR,
TFT_DARKGREY);
#endif
}
}
void MenuFunctions::drawStatusBar()
@@ -1670,6 +1693,29 @@ void MenuFunctions::drawStatusBar()
TFT_DARKGREY);
#endif
}
// Force PMKID stuff
if (wifi_scan_obj.force_pmkid) {
#ifdef HAS_FULL_SCREEN
display_obj.tft.drawXBitmap(170 - (16 * 2),
0,
menu_icons[FORCE],
16,
16,
STATUSBAR_COLOR,
TFT_GREEN);
#endif
} else {
#ifdef HAS_FULL_SCREEN
display_obj.tft.drawXBitmap(170 - (16 * 2),
0,
menu_icons[FORCE],
16,
16,
STATUSBAR_COLOR,
TFT_DARKGREY);
#endif
}
}
void MenuFunctions::orientDisplay()
@@ -1747,6 +1793,7 @@ void MenuFunctions::RunSetup()
extern LinkedList<AccessPoint>* access_points;
extern LinkedList<Station>* stations;
extern LinkedList<AirTag>* airtags;
extern LinkedList<IPAddress>* ipList;
this->disable_touch = false;
@@ -1779,12 +1826,14 @@ void MenuFunctions::RunSetup()
// WiFi menu stuff
wifiSnifferMenu.list = new LinkedList<MenuNode>();
wifiScannerMenu.list = new LinkedList<MenuNode>();
wifiAttackMenu.list = new LinkedList<MenuNode>();
#ifdef HAS_GPS
wardrivingMenu.list = new LinkedList<MenuNode>();
#endif
wifiGeneralMenu.list = new LinkedList<MenuNode>();
wifiAPMenu.list = new LinkedList<MenuNode>();
wifiIPMenu.list = new LinkedList<MenuNode>();
apInfoMenu.list = new LinkedList<MenuNode>();
setMacMenu.list = new LinkedList<MenuNode>();
genAPMacMenu.list = new LinkedList<MenuNode>();
@@ -1838,6 +1887,7 @@ void MenuFunctions::RunSetup()
settingsMenu.name = text_table1[18];
bluetoothMenu.name = text_table1[19];
wifiSnifferMenu.name = text_table1[20];
wifiScannerMenu.name = "Scanners";
wifiAttackMenu.name = text_table1[21];
wifiGeneralMenu.name = text_table1[22];
saveFileMenu.name = "Save/Load Files";
@@ -1854,6 +1904,7 @@ void MenuFunctions::RunSetup()
clearSSIDsMenu.name = text_table1[28];
clearAPsMenu.name = text_table1[29];
wifiAPMenu.name = "Access Points";
wifiIPMenu.name = "Active IPs";
apInfoMenu.name = "AP Info";
setMacMenu.name = "Set MACs";
genAPMacMenu.name = "Generate AP MAC";
@@ -1900,6 +1951,9 @@ void MenuFunctions::RunSetup()
this->addNodes(&wifiMenu, text_table1[31], TFTYELLOW, NULL, SNIFFERS, [this]() {
this->changeMenu(&wifiSnifferMenu);
});
this->addNodes(&wifiMenu, "Scanners", TFTORANGE, NULL, SCANNERS, [this]() {
this->changeMenu(&wifiScannerMenu);
});
#ifdef HAS_GPS
this->addNodes(&wifiMenu, "Wardriving", TFTGREEN, NULL, BEACON_SNIFF, [this]() {
this->changeMenu(&wardrivingMenu);
@@ -1912,6 +1966,33 @@ void MenuFunctions::RunSetup()
this->changeMenu(&wifiGeneralMenu);
});
// Build WiFi scanner Menu
wifiScannerMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
this->addNodes(&wifiScannerMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiScannerMenu.parentMenu);
});
this->addNodes(&wifiScannerMenu, "Ping Scan", TFTGREEN, NULL, SCANNERS, [this]() {
display_obj.clearScreen();
this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_PING_SCAN, TFT_CYAN);
});
this->addNodes(&wifiScannerMenu, "Port Scan All", TFTMAGENTA, NULL, BEACON_LIST, [this](){
// Add the back button
wifiIPMenu.list->clear();
this->addNodes(&wifiIPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiIPMenu.parentMenu);
});
// Populate the menu with buttons
for (int i = 0; i < ipList->size(); i++) {
// This is the menu node
this->addNodes(&wifiIPMenu, ipList->get(i).toString(), TFTBLUE, NULL, 255, [this, i](){
Serial.println("Selected: " + ipList->get(i).toString());
});
}
this->changeMenu(&wifiIPMenu);
});
// Build WiFi sniffer Menu
wifiSnifferMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
this->addNodes(&wifiSnifferMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
@@ -2019,11 +2100,6 @@ void MenuFunctions::RunSetup()
wifi_scan_obj.StartScan(WIFI_SCAN_SIG_STREN, TFT_CYAN);
});
//#endif
this->addNodes(&wifiSnifferMenu, "Ping Scan", TFTGREEN, NULL, PROBE_SNIFF, [this]() {
display_obj.clearScreen();
this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_PING_SCAN, TFT_CYAN);
});
// Build Wardriving menu
#ifdef HAS_GPS
@@ -2245,6 +2321,11 @@ void MenuFunctions::RunSetup()
this->changeMenu(wifiAPMenu.parentMenu);
});
wifiIPMenu.parentMenu = &wifiScannerMenu;
this->addNodes(&wifiIPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiIPMenu.parentMenu);
});
// Select Stations on Mini v2
this->addNodes(&wifiGeneralMenu, "Select Stations", TFTCYAN, NULL, KEYBOARD_ICO, [this](){
@@ -2894,6 +2975,9 @@ void MenuFunctions::RunSetup()
settings_obj.toggleSetting(settings_obj.setting_index_to_name(i));
this->changeMenu(&specSettingMenu);
this->displaySetting(settings_obj.setting_index_to_name(i), &settingsMenu, i + 1);
wifi_scan_obj.force_pmkid = settings_obj.loadSetting<bool>(text_table4[5]);
wifi_scan_obj.force_probe = settings_obj.loadSetting<bool>(text_table4[6]);
wifi_scan_obj.save_pcap = settings_obj.loadSetting<bool>(text_table4[7]);
}, settings_obj.loadSetting<bool>(settings_obj.setting_index_to_name(i)));
}

View File

@@ -77,6 +77,7 @@ extern Settings settings_obj;
#define PINESCAN_SNIFF 37 // Use blanks icon
#define MULTISSID_SNIFF 37 // Use blanks icon
#define JOINED 38
#define FORCE 39
PROGMEM void my_disp_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p);
PROGMEM bool my_touchpad_read(lv_indev_drv_t * indev_driver, lv_indev_data_t * data);
@@ -165,12 +166,14 @@ class MenuFunctions
// WiFi menu stuff
Menu wifiSnifferMenu;
Menu wifiScannerMenu;
Menu wifiAttackMenu;
#ifdef HAS_GPS
Menu wardrivingMenu;
#endif
Menu wifiGeneralMenu;
Menu wifiAPMenu;
Menu wifiIPMenu;
#ifdef HAS_BT
Menu airtagMenu;
#endif

View File

@@ -231,9 +231,6 @@ class WiFiScan
// Settings
uint mac_history_cursor = 0;
uint8_t channel_hop_delay = 1;
bool force_pmkid = false;
bool force_probe = false;
bool save_pcap = false;
int x_pos; //position along the graph x axis
float y_pos_x; //current graph y axis position of X value
@@ -508,6 +505,10 @@ class WiFiScan
int8_t min_rssi = 0;
int8_t max_rssi = -128;
bool force_pmkid = false;
bool force_probe = false;
bool save_pcap = false;
String analyzer_name_string = "";
uint8_t analyzer_frames_recvd = 0;

BIN
pictures/icons/force_16.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,6 @@
#define 3f9b97ac7933453c85ec3a8adb49feeejQ9bt0wTgiC65w8g_width 16
#define 3f9b97ac7933453c85ec3a8adb49feeejQ9bt0wTgiC65w8g_height 16
static char 3f9b97ac7933453c85ec3a8adb49feeejQ9bt0wTgiC65w8g_bits[] = {
0xFF, 0xFF, 0x1F, 0xF8, 0x0F, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0,
0x67, 0xE6, 0x77, 0xEE, 0x87, 0xE0, 0x8F, 0xF1, 0x0F, 0xF0, 0x4F, 0xF5,
0x1F, 0xF8, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, };