mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2026-04-28 12:03:07 -07:00
Add channel analyzer and v7 enclosure
This commit is contained in:
@@ -7,9 +7,10 @@
|
||||
#include "FS.h"
|
||||
#include "settings.h"
|
||||
#include "esp_wifi_types.h"
|
||||
#include "configs.h"
|
||||
|
||||
#define BUF_SIZE 3 * 1024 // Had to reduce buffer size to save RAM. GG @spacehuhn
|
||||
#define SNAP_LEN 2324 // max len of each recieved packet
|
||||
//#define BUF_SIZE 3 * 1024 // Had to reduce buffer size to save RAM. GG @spacehuhn
|
||||
//#define SNAP_LEN 2324 // max len of each recieved packet
|
||||
|
||||
//extern bool useSD;
|
||||
|
||||
|
||||
@@ -644,9 +644,29 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
if ((wifi_scan_obj.currentScanMode != LV_JOIN_WIFI) &&
|
||||
(wifi_scan_obj.currentScanMode != LV_ADD_SSID))
|
||||
this->updateStatusBar();
|
||||
|
||||
// Do channel analyzer stuff
|
||||
if (wifi_scan_obj.currentScanMode == WIFI_SCAN_CHAN_ANALYZER) {
|
||||
this->setGraphScale(this->graphScaleCheck(wifi_scan_obj._analyzer_values));
|
||||
|
||||
this->drawGraph(wifi_scan_obj._analyzer_values);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Do channel analyzer stuff
|
||||
/*if (wifi_scan_obj.currentScanMode == WIFI_SCAN_CHAN_ANALYZER) {
|
||||
if (currentTime - this->initTime >= GRAPH_REFRESH) {
|
||||
Serial.println("Refreshing graph: " + (String)currentTime);
|
||||
|
||||
this->initTime = millis();
|
||||
|
||||
this->setGraphScale(this->graphScaleCheck(wifi_scan_obj._analyzer_values));
|
||||
|
||||
this->drawGraph(wifi_scan_obj._analyzer_values);
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
boolean pressed = false;
|
||||
// This is code from bodmer's keypad example
|
||||
@@ -793,7 +813,8 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_ACTIVE_EAPOL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_ACTIVE_LIST_EAPOL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_PACKET_MONITOR))
|
||||
(wifi_scan_obj.currentScanMode == WIFI_PACKET_MONITOR) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_CHAN_ANALYZER))
|
||||
{
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
|
||||
|
||||
@@ -906,7 +927,8 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
}
|
||||
}
|
||||
else if ((wifi_scan_obj.currentScanMode == WIFI_PACKET_MONITOR) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL)) {
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_CHAN_ANALYZER)) {
|
||||
if (wifi_scan_obj.set_channel < 14)
|
||||
wifi_scan_obj.changeChannel(wifi_scan_obj.set_channel + 1);
|
||||
else
|
||||
@@ -941,7 +963,8 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
}
|
||||
}
|
||||
else if ((wifi_scan_obj.currentScanMode == WIFI_PACKET_MONITOR) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL)) {
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_CHAN_ANALYZER)) {
|
||||
if (wifi_scan_obj.set_channel > 1)
|
||||
wifi_scan_obj.changeChannel(wifi_scan_obj.set_channel - 1);
|
||||
else
|
||||
@@ -1557,6 +1580,12 @@ void MenuFunctions::RunSetup()
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_PACKET_MONITOR, TFT_BLUE);
|
||||
});
|
||||
this->addNodes(&wifiSnifferMenu, "Channel Analyzer", TFT_CYAN, NULL, PACKET_MONITOR, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
this->renderGraphUI();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_CHAN_ANALYZER, TFT_CYAN);
|
||||
});
|
||||
#endif
|
||||
//#ifndef HAS_ILI9341
|
||||
this->addNodes(&wifiSnifferMenu, text_table1[47], TFT_RED, NULL, PWNAGOTCHI, [this]() {
|
||||
@@ -1876,7 +1905,7 @@ void MenuFunctions::RunSetup()
|
||||
|
||||
for (int i = 0; i < menu_limit - 1; i++) {
|
||||
wifiStationMenu.list->clear();
|
||||
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFT_CYAN, NULL, KEYBOARD_ICO, [this, i](){
|
||||
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFT_CYAN, NULL, 255, [this, i](){
|
||||
|
||||
wifiStationMenu.list->clear();
|
||||
|
||||
@@ -1889,7 +1918,7 @@ void MenuFunctions::RunSetup()
|
||||
for (int x = 0; x < access_points->get(i).stations->size(); x++) {
|
||||
int cur_ap_sta = access_points->get(i).stations->get(x);
|
||||
|
||||
this->addNodes(&wifiStationMenu, macToString(stations->get(cur_ap_sta)), TFT_CYAN, NULL, KEYBOARD_ICO, [this, i, cur_ap_sta, x](){
|
||||
this->addNodes(&wifiStationMenu, macToString(stations->get(cur_ap_sta)), TFT_CYAN, NULL, 255, [this, i, cur_ap_sta, x](){
|
||||
Station new_sta = stations->get(cur_ap_sta);
|
||||
new_sta.selected = !stations->get(cur_ap_sta).selected;
|
||||
|
||||
@@ -2584,6 +2613,65 @@ void MenuFunctions::addNodes(Menu * menu, String name, uint16_t color, Menu * ch
|
||||
//menu->list->add(MenuNode{name, false, color, place, selected, callable});
|
||||
}
|
||||
|
||||
void MenuFunctions::setGraphScale(float scale) {
|
||||
this->_graph_scale = scale;
|
||||
}
|
||||
|
||||
float MenuFunctions::calculateGraphScale(uint8_t value) {
|
||||
if (value < GRAPH_VERT_LIM) {
|
||||
return 1.0; // No scaling needed if the value is within the limit
|
||||
}
|
||||
|
||||
// Calculate the multiplier proportionally
|
||||
return (0.5 * GRAPH_VERT_LIM) / value;
|
||||
}
|
||||
|
||||
float MenuFunctions::graphScaleCheck(const uint8_t array[TFT_WIDTH]) {
|
||||
uint8_t maxValue = 0;
|
||||
|
||||
// Iterate through the array to find the highest value
|
||||
for (uint8_t i = 0; i < TFT_WIDTH; i++) {
|
||||
if (array[i] > maxValue) {
|
||||
maxValue = array[i];
|
||||
}
|
||||
}
|
||||
|
||||
// If the highest value exceeds GRAPH_VERT_LIM, call calculateMultiplier
|
||||
if (maxValue > GRAPH_VERT_LIM) {
|
||||
return this->calculateGraphScale(maxValue);
|
||||
}
|
||||
|
||||
// If the highest value does not exceed GRAPH_VERT_LIM, return 1.0
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
void MenuFunctions::drawMaxLine(uint8_t value) {
|
||||
display_obj.tft.drawLine(0, TFT_HEIGHT - (value * this->_graph_scale), TFT_WIDTH, TFT_HEIGHT - (value * this->_graph_scale), TFT_GREEN);
|
||||
display_obj.tft.setCursor(0, TFT_HEIGHT - (value * this->_graph_scale));
|
||||
display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
|
||||
display_obj.tft.setTextSize(1);
|
||||
display_obj.tft.println((String)value);
|
||||
}
|
||||
|
||||
void MenuFunctions::drawGraph(uint8_t *values) {
|
||||
uint8_t maxValue = 0;
|
||||
for (int i = 0; i < TFT_WIDTH; i++) {
|
||||
if (values[i] > maxValue) {
|
||||
maxValue = values[i];
|
||||
}
|
||||
display_obj.tft.drawLine(i, TFT_HEIGHT, i, TFT_HEIGHT - GRAPH_VERT_LIM, TFT_BLACK);
|
||||
display_obj.tft.drawLine(i, TFT_HEIGHT, i, TFT_HEIGHT - (values[i] * this->_graph_scale), TFT_CYAN);
|
||||
}
|
||||
|
||||
this->drawMaxLine(maxValue);
|
||||
}
|
||||
|
||||
void MenuFunctions::renderGraphUI() {
|
||||
display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK);
|
||||
display_obj.tft.drawCentreString("Frames/" + (String)BANNER_TIME + "ms", TFT_WIDTH / 2, TFT_HEIGHT - GRAPH_VERT_LIM - (CHAR_WIDTH * 2), 2);
|
||||
display_obj.tft.drawLine(0, TFT_HEIGHT - GRAPH_VERT_LIM - 1, TFT_WIDTH, TFT_HEIGHT - GRAPH_VERT_LIM - 1, TFT_WHITE);
|
||||
}
|
||||
|
||||
void MenuFunctions::buildButtons(Menu * menu, int starting_index, String button_name)
|
||||
{
|
||||
if (menu->list != NULL)
|
||||
|
||||
@@ -122,10 +122,13 @@ class MenuFunctions
|
||||
|
||||
String u_result = "";
|
||||
|
||||
|
||||
float _graph_scale = 1.0;
|
||||
uint32_t initTime = 0;
|
||||
uint8_t menu_start_index = 0;
|
||||
uint8_t mini_kb_index = 0;
|
||||
uint8_t old_gps_sat_count = 0;
|
||||
uint8_t max_graph_value = 0;
|
||||
|
||||
// Main menu stuff
|
||||
Menu mainMenu;
|
||||
@@ -178,7 +181,11 @@ class MenuFunctions
|
||||
// Menu icons
|
||||
|
||||
|
||||
|
||||
void drawMaxLine(uint8_t value);
|
||||
float calculateGraphScale(uint8_t value);
|
||||
float graphScaleCheck(const uint8_t array[TFT_WIDTH]);
|
||||
void drawGraph(uint8_t *values);
|
||||
void renderGraphUI();
|
||||
void addNodes(Menu* menu, String name, uint16_t color, Menu* child, int place, std::function<void()> callable, bool selected = false, String command = "");
|
||||
void battery(bool initial = false);
|
||||
void battery2(bool initial = false);
|
||||
@@ -223,6 +230,7 @@ class MenuFunctions
|
||||
|
||||
String loaded_file = "";
|
||||
|
||||
void setGraphScale(float scale);
|
||||
void initLVGL();
|
||||
void deinitLVGL();
|
||||
void selectEPHTMLGFX();
|
||||
|
||||
@@ -760,6 +760,11 @@ void WiFiScan::StartScan(uint8_t scan_mode, uint16_t color)
|
||||
RunPacketMonitor(scan_mode, color);
|
||||
#endif
|
||||
}
|
||||
else if (scan_mode == WIFI_SCAN_CHAN_ANALYZER) {
|
||||
#ifdef HAS_SCREEN
|
||||
RunPacketMonitor(scan_mode, color);
|
||||
#endif
|
||||
}
|
||||
else if (scan_mode == WIFI_ATTACK_BEACON_LIST)
|
||||
this->startWiFiAttacks(scan_mode, color, text_table1[50]);
|
||||
else if (scan_mode == WIFI_ATTACK_BEACON_SPAM)
|
||||
@@ -968,9 +973,14 @@ void WiFiScan::StopScan(uint8_t scan_mode)
|
||||
(currentScanMode == WIFI_ATTACK_MIMIC) ||
|
||||
(currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
|
||||
(currentScanMode == WIFI_PACKET_MONITOR) ||
|
||||
(currentScanMode == WIFI_SCAN_CHAN_ANALYZER) ||
|
||||
(currentScanMode == LV_JOIN_WIFI))
|
||||
{
|
||||
this->shutdownWiFi();
|
||||
|
||||
for (int i = 0; i < TFT_WIDTH; i++) {
|
||||
this->_analyzer_values[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1953,7 +1963,8 @@ void WiFiScan::RunPacketMonitor(uint8_t scan_mode, uint16_t color)
|
||||
led_obj.setMode(MODE_SNIFF);
|
||||
#endif
|
||||
|
||||
startPcap("packet_monitor");
|
||||
if (scan_mode == WIFI_PACKET_MONITOR)
|
||||
startPcap("packet_monitor");
|
||||
|
||||
#ifdef HAS_ILI9341
|
||||
|
||||
@@ -1999,7 +2010,10 @@ void WiFiScan::RunPacketMonitor(uint8_t scan_mode, uint16_t color)
|
||||
display_obj.tft.setTextColor(TFT_WHITE, color);
|
||||
#ifdef HAS_FULL_SCREEN
|
||||
display_obj.tft.fillRect(0,16,240,16, color);
|
||||
display_obj.tft.drawCentreString(text_table1[45],120,16,2);
|
||||
if (scan_mode == WIFI_PACKET_MONITOR)
|
||||
display_obj.tft.drawCentreString(text_table1[45],120,16,2);
|
||||
else if (scan_mode == WIFI_SCAN_CHAN_ANALYZER)
|
||||
display_obj.tft.drawCentreString("Channel Analyzer", 120, 16, 2);
|
||||
#endif
|
||||
#ifdef HAS_ILI9341
|
||||
display_obj.touchToExit();
|
||||
@@ -4558,6 +4572,7 @@ void WiFiScan::sendDeauthAttack(uint32_t currentTime, String dst_mac_str) {
|
||||
|
||||
void WiFiScan::wifiSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type)
|
||||
{
|
||||
extern WiFiScan wifi_scan_obj;
|
||||
wifi_promiscuous_pkt_t *snifferPacket = (wifi_promiscuous_pkt_t*)buf;
|
||||
WifiMgmtHdr *frameControl = (WifiMgmtHdr*)snifferPacket->payload;
|
||||
wifi_pkt_rx_ctrl_t ctrl = (wifi_pkt_rx_ctrl_t)snifferPacket->rx_ctrl;
|
||||
@@ -4571,85 +4586,90 @@ void WiFiScan::wifiSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type)
|
||||
int buff = 0;
|
||||
#endif
|
||||
|
||||
if (type == WIFI_PKT_MGMT)
|
||||
{
|
||||
len -= 4;
|
||||
int fctl = ntohs(frameControl->fctl);
|
||||
const wifi_ieee80211_packet_t *ipkt = (wifi_ieee80211_packet_t *)snifferPacket->payload;
|
||||
const WifiMgmtHdr *hdr = &ipkt->hdr;
|
||||
if (wifi_scan_obj.currentScanMode != WIFI_SCAN_CHAN_ANALYZER) {
|
||||
|
||||
if (type == WIFI_PKT_MGMT)
|
||||
{
|
||||
len -= 4;
|
||||
int fctl = ntohs(frameControl->fctl);
|
||||
const wifi_ieee80211_packet_t *ipkt = (wifi_ieee80211_packet_t *)snifferPacket->payload;
|
||||
const WifiMgmtHdr *hdr = &ipkt->hdr;
|
||||
|
||||
// If we dont the buffer size is not 0, don't write or else we get CORRUPT_HEAP
|
||||
#ifdef HAS_SCREEN
|
||||
#ifdef HAS_ILI9341
|
||||
if (snifferPacket->payload[0] == 0x80)
|
||||
{
|
||||
num_beacon++;
|
||||
}
|
||||
else if ((snifferPacket->payload[0] == 0xA0 || snifferPacket->payload[0] == 0xC0 ))
|
||||
{
|
||||
num_deauth++;
|
||||
}
|
||||
else if (snifferPacket->payload[0] == 0x40)
|
||||
{
|
||||
num_probe++;
|
||||
}
|
||||
#else
|
||||
if (snifferPacket->payload[0] == 0x80)
|
||||
display_string.concat(";grn;");
|
||||
else if ((snifferPacket->payload[0] == 0xA0 || snifferPacket->payload[0] == 0xC0 ))
|
||||
display_string.concat(";red;");
|
||||
else if (snifferPacket->payload[0] == 0x40)
|
||||
display_string.concat(";cyn;");
|
||||
else
|
||||
display_string.concat(";mgn;");
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
#ifndef HAS_ILI9341
|
||||
display_string.concat(";wht;");
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
char src_addr[] = "00:00:00:00:00:00";
|
||||
char dst_addr[] = "00:00:00:00:00:00";
|
||||
getMAC(src_addr, snifferPacket->payload, 10);
|
||||
getMAC(dst_addr, snifferPacket->payload, 4);
|
||||
display_string.concat(src_addr);
|
||||
display_string.concat(" -> ");
|
||||
display_string.concat(dst_addr);
|
||||
|
||||
int temp_len = display_string.length();
|
||||
|
||||
// If we dont the buffer size is not 0, don't write or else we get CORRUPT_HEAP
|
||||
#ifdef HAS_SCREEN
|
||||
#ifdef HAS_ILI9341
|
||||
if (snifferPacket->payload[0] == 0x80)
|
||||
{
|
||||
num_beacon++;
|
||||
}
|
||||
else if ((snifferPacket->payload[0] == 0xA0 || snifferPacket->payload[0] == 0xC0 ))
|
||||
{
|
||||
num_deauth++;
|
||||
}
|
||||
else if (snifferPacket->payload[0] == 0x40)
|
||||
{
|
||||
num_probe++;
|
||||
}
|
||||
#else
|
||||
if (snifferPacket->payload[0] == 0x80)
|
||||
display_string.concat(";grn;");
|
||||
else if ((snifferPacket->payload[0] == 0xA0 || snifferPacket->payload[0] == 0xC0 ))
|
||||
display_string.concat(";red;");
|
||||
else if (snifferPacket->payload[0] == 0x40)
|
||||
display_string.concat(";cyn;");
|
||||
else
|
||||
display_string.concat(";mgn;");
|
||||
// Fill blank space
|
||||
for (int i = 0; i < 40 - temp_len; i++)
|
||||
{
|
||||
display_string.concat(" ");
|
||||
}
|
||||
|
||||
//Serial.print(" ");
|
||||
|
||||
#ifdef SCREEN_BUFFER
|
||||
//if (display_obj.display_buffer->size() == 0)
|
||||
//{
|
||||
// display_obj.loading = true;
|
||||
//while(display_obj.display_buffer->size() >= 10)
|
||||
// delay(10);
|
||||
if (display_obj.display_buffer->size() >= 10)
|
||||
return;
|
||||
|
||||
display_obj.display_buffer->add(display_string);
|
||||
// display_obj.loading = false;
|
||||
Serial.println(display_string);
|
||||
//}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
buffer_obj.append(snifferPacket, len);
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
#ifndef HAS_ILI9341
|
||||
display_string.concat(";wht;");
|
||||
#endif
|
||||
#endif
|
||||
wifi_scan_obj._analyzer_value++;
|
||||
}
|
||||
|
||||
char src_addr[] = "00:00:00:00:00:00";
|
||||
char dst_addr[] = "00:00:00:00:00:00";
|
||||
getMAC(src_addr, snifferPacket->payload, 10);
|
||||
getMAC(dst_addr, snifferPacket->payload, 4);
|
||||
display_string.concat(src_addr);
|
||||
display_string.concat(" -> ");
|
||||
display_string.concat(dst_addr);
|
||||
|
||||
int temp_len = display_string.length();
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
// Fill blank space
|
||||
for (int i = 0; i < 40 - temp_len; i++)
|
||||
{
|
||||
display_string.concat(" ");
|
||||
}
|
||||
|
||||
//Serial.print(" ");
|
||||
|
||||
#ifdef SCREEN_BUFFER
|
||||
//if (display_obj.display_buffer->size() == 0)
|
||||
//{
|
||||
// display_obj.loading = true;
|
||||
//while(display_obj.display_buffer->size() >= 10)
|
||||
// delay(10);
|
||||
if (display_obj.display_buffer->size() >= 10)
|
||||
return;
|
||||
|
||||
display_obj.display_buffer->add(display_string);
|
||||
// display_obj.loading = false;
|
||||
Serial.println(display_string);
|
||||
//}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
buffer_obj.append(snifferPacket, len);
|
||||
//}
|
||||
}
|
||||
|
||||
void WiFiScan::eapolSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type)
|
||||
@@ -5248,6 +5268,23 @@ char* WiFiScan::stringToChar(String string) {
|
||||
return buf;
|
||||
}
|
||||
|
||||
void WiFiScan::addAnalyzerValue(uint8_t value, int rssi_avg, uint8_t target_array[], int array_size) {
|
||||
// Shift all elements up by one index
|
||||
for (int i = array_size - 1; i > 0; i--) {
|
||||
target_array[i] = target_array[i - 1];
|
||||
}
|
||||
// Add the new value to the start of the array
|
||||
target_array[0] = value;
|
||||
}
|
||||
|
||||
void WiFiScan::channelAnalyzerLoop(uint32_t tick) {
|
||||
if (tick - this->initTime >= BANNER_TIME) {
|
||||
this->initTime = millis();
|
||||
this->addAnalyzerValue(this->_analyzer_value * BASE_MULTIPLIER, -72, this->_analyzer_values, TFT_WIDTH);
|
||||
this->_analyzer_value = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Function for updating scan status
|
||||
void WiFiScan::main(uint32_t currentTime)
|
||||
@@ -5269,6 +5306,9 @@ void WiFiScan::main(uint32_t currentTime)
|
||||
channelHop();
|
||||
}
|
||||
}
|
||||
else if ((currentScanMode == WIFI_SCAN_CHAN_ANALYZER)) {
|
||||
this->channelAnalyzerLoop(currentTime);
|
||||
}
|
||||
else if ((currentScanMode == BT_ATTACK_SWIFTPAIR_SPAM) ||
|
||||
(currentScanMode == BT_ATTACK_SOUR_APPLE) ||
|
||||
(currentScanMode == BT_ATTACK_SPAM_ALL) ||
|
||||
|
||||
@@ -98,10 +98,11 @@
|
||||
#define BT_SCAN_AIRTAG 43
|
||||
#define BT_SPOOF_AIRTAG 44
|
||||
#define BT_SCAN_FLIPPER 45
|
||||
#define WIFI_SCAN_CHAN_ANALYZER 46
|
||||
|
||||
#define GRAPH_REFRESH 100
|
||||
#define BASE_MULTIPLIER 4
|
||||
|
||||
#define MAX_CHANNEL 14
|
||||
#define MAX_CHANNEL 14
|
||||
|
||||
extern EvilPortal evil_portal_obj;
|
||||
|
||||
@@ -176,6 +177,8 @@ class WiFiScan
|
||||
// Wardriver thanks to https://github.com/JosephHewitt
|
||||
struct mac_addr mac_history[mac_history_len];
|
||||
|
||||
uint8_t _analyzer_value = 0;
|
||||
|
||||
// Settings
|
||||
uint mac_history_cursor = 0;
|
||||
uint8_t channel_hop_delay = 1;
|
||||
@@ -305,6 +308,7 @@ class WiFiScan
|
||||
NimBLEAdvertisementData GetUniversalAdvertisementData(EBLEPayloadType type);
|
||||
#endif
|
||||
|
||||
void addAnalyzerValue(uint8_t value, int rssi_avg, uint8_t target_array[], int array_size);
|
||||
bool seen_mac(unsigned char* mac);
|
||||
bool mac_cmp(struct mac_addr addr1, struct mac_addr addr2);
|
||||
void save_mac(unsigned char* mac);
|
||||
@@ -320,6 +324,7 @@ class WiFiScan
|
||||
|
||||
void startWiFiAttacks(uint8_t scan_mode, uint16_t color, String title_string);
|
||||
|
||||
void channelAnalyzerLoop(uint32_t tick);
|
||||
void packetMonitorMain(uint32_t currentTime);
|
||||
void eapolMonitorMain(uint32_t currentTime);
|
||||
void updateMidway();
|
||||
@@ -379,6 +384,9 @@ class WiFiScan
|
||||
String dst_mac = "ff:ff:ff:ff:ff:ff";
|
||||
byte src_mac[6] = {};
|
||||
|
||||
uint8_t _analyzer_values[TFT_WIDTH];
|
||||
uint8_t _temp_analyzer_values[TFT_WIDTH];
|
||||
|
||||
String current_mini_kb_ssid = "";
|
||||
|
||||
const String alfa = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789-=[];',./`\\_+{}:\"<>?~|!@#$%^&*()";
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
//#define MARAUDER_V4
|
||||
//#define MARAUDER_V6
|
||||
//#define MARAUDER_V6_1
|
||||
//#define MARAUDER_V7
|
||||
#define MARAUDER_V7
|
||||
//#define MARAUDER_KIT
|
||||
//#define GENERIC_ESP32
|
||||
//#define MARAUDER_FLIPPER
|
||||
@@ -23,7 +23,9 @@
|
||||
//#define MARAUDER_REV_FEATHER
|
||||
//// END BOARD TARGETS
|
||||
|
||||
#define MARAUDER_VERSION "v1.2.1"
|
||||
#define MARAUDER_VERSION "v1.2.2"
|
||||
|
||||
#define GRAPH_REFRESH 100
|
||||
|
||||
//// HARDWARE NAMES
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
@@ -409,6 +411,8 @@
|
||||
#define TFT_HEIGHT 240
|
||||
#endif
|
||||
|
||||
#define GRAPH_VERT_LIM TFT_HEIGHT/2
|
||||
|
||||
#define CHAR_WIDTH 6
|
||||
#define SCREEN_WIDTH TFT_HEIGHT // Originally 240
|
||||
#define SCREEN_HEIGHT TFT_WIDTH // Originally 320
|
||||
@@ -451,7 +455,7 @@
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_M5STICKCP2)
|
||||
#if defined(MARAUDER_M5STICKCP2)
|
||||
#define MARAUDER_M5STICKC // From now on, everything is the same, except for one check in esp32_marauder.ino amd stickc_led.cpp/h
|
||||
|
||||
#define SCREEN_CHAR_WIDTH 40
|
||||
@@ -477,6 +481,8 @@
|
||||
#define TFT_HEIGHT 240
|
||||
#endif
|
||||
|
||||
#define GRAPH_VERT_LIM TFT_HEIGHT/2
|
||||
|
||||
#define CHAR_WIDTH 6
|
||||
#define SCREEN_WIDTH TFT_HEIGHT // Originally 240
|
||||
#define SCREEN_HEIGHT TFT_WIDTH // Originally 320
|
||||
@@ -534,6 +540,8 @@
|
||||
#endif
|
||||
|
||||
#define TFT_SHIELD
|
||||
|
||||
#define GRAPH_VERT_LIM TFT_HEIGHT/2
|
||||
|
||||
#define SCREEN_WIDTH TFT_WIDTH
|
||||
#define SCREEN_HEIGHT TFT_HEIGHT
|
||||
@@ -592,6 +600,8 @@
|
||||
#endif
|
||||
|
||||
#define TFT_DIY
|
||||
|
||||
#define GRAPH_VERT_LIM TFT_HEIGHT/2
|
||||
|
||||
#define SCREEN_WIDTH TFT_WIDTH
|
||||
#define SCREEN_HEIGHT TFT_HEIGHT
|
||||
@@ -649,6 +659,8 @@
|
||||
#define TFT_HEIGHT 320
|
||||
#endif
|
||||
|
||||
#define GRAPH_VERT_LIM TFT_HEIGHT/2
|
||||
|
||||
#define TFT_DIY
|
||||
|
||||
#define SCREEN_BUFFER
|
||||
@@ -712,6 +724,8 @@
|
||||
#define TFT_HEIGHT 320
|
||||
#endif
|
||||
|
||||
#define GRAPH_VERT_LIM TFT_HEIGHT/2
|
||||
|
||||
#define TFT_DIY
|
||||
#define KIT
|
||||
|
||||
@@ -783,6 +797,8 @@
|
||||
#define TFT_HEIGHT 128
|
||||
#endif
|
||||
|
||||
#define GRAPH_VERT_LIM TFT_HEIGHT/2
|
||||
|
||||
#define CHAR_WIDTH 6
|
||||
#define SCREEN_WIDTH TFT_WIDTH // Originally 240
|
||||
#define SCREEN_HEIGHT TFT_HEIGHT // Originally 320
|
||||
@@ -850,6 +866,8 @@
|
||||
#define TFT_HEIGHT 135
|
||||
#endif
|
||||
|
||||
#define GRAPH_VERT_LIM TFT_HEIGHT/2
|
||||
|
||||
#define CHAR_WIDTH 6
|
||||
#define SCREEN_WIDTH TFT_WIDTH // Originally 240
|
||||
#define SCREEN_HEIGHT TFT_HEIGHT // Originally 320
|
||||
@@ -1292,4 +1310,20 @@
|
||||
#endif
|
||||
//// END MARAUDER TITLE STUFF
|
||||
|
||||
//// PCAP BUFFER STUFF
|
||||
|
||||
#ifdef MARAUDER_V7
|
||||
#define BUF_SIZE 8 * 1024 // Had to reduce buffer size to save RAM. GG @spacehuhn
|
||||
#define SNAP_LEN 4096 // max len of each recieved packet
|
||||
#elif defined(MARAUDER_MINI)
|
||||
#define BUF_SIZE 8 * 1024 // Had to reduce buffer size to save RAM. GG @spacehuhn
|
||||
#define SNAP_LEN 4096 // max len of each recieved packet
|
||||
#elif defined(MARAUDER_REV_FEATHER)
|
||||
#define BUF_SIZE 8 * 1024 // Had to reduce buffer size to save RAM. GG @spacehuhn
|
||||
#define SNAP_LEN 4096 // max len of each recieved packet
|
||||
#else
|
||||
#define BUF_SIZE 3 * 1024 // Had to reduce buffer size to save RAM. GG @spacehuhn
|
||||
#define SNAP_LEN 2324 // max len of each recieved packet
|
||||
#endif
|
||||
//// PCAP BUFFER STUFF
|
||||
#endif
|
||||
|
||||
Binary file not shown.
BIN
mechanical/V7/Inlay/Front_debos.stl
Normal file
BIN
mechanical/V7/Inlay/Front_debos.stl
Normal file
Binary file not shown.
BIN
mechanical/V7/Inlay/v7 Fill.stl
Normal file
BIN
mechanical/V7/Inlay/v7 Fill.stl
Normal file
Binary file not shown.
BIN
mechanical/V7/Inlay/v7 Outline.stl
Normal file
BIN
mechanical/V7/Inlay/v7 Outline.stl
Normal file
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user