diff --git a/esp32_marauder/CommandLine.cpp b/esp32_marauder/CommandLine.cpp index 92e89e6d1..b5a10c672 100644 --- a/esp32_marauder/CommandLine.cpp +++ b/esp32_marauder/CommandLine.cpp @@ -497,6 +497,7 @@ void CommandLine::runCommand(String input) { if (html_sw != -1) { String target_html_name = cmd_args.get(html_sw + 1); evil_portal_obj.target_html_name = target_html_name; + evil_portal_obj.using_serial_html = false; Serial.println("Set html file as " + evil_portal_obj.target_html_name); } //else { @@ -513,8 +514,12 @@ void CommandLine::runCommand(String input) { else if (et_command == "sethtml") { String target_html_name = cmd_args.get(cmd_sw + 2); evil_portal_obj.target_html_name = target_html_name; + evil_portal_obj.using_serial_html = false; Serial.println("Set html file as " + evil_portal_obj.target_html_name); } + else if (et_command == "sethtmlstr") { + evil_portal_obj.setHtmlFromSerial(); + } else if (et_command == "setap") { } diff --git a/esp32_marauder/EvilPortal.cpp b/esp32_marauder/EvilPortal.cpp index f97c4a275..5801f1008 100644 --- a/esp32_marauder/EvilPortal.cpp +++ b/esp32_marauder/EvilPortal.cpp @@ -62,7 +62,20 @@ void EvilPortal::setupServer() { Serial.println("web server up"); } +void EvilPortal::setHtmlFromSerial() { + Serial.println("Setting HTML from serial..."); + const char *htmlStr = Serial.readString().c_str(); + strncpy(index_html, htmlStr, strlen(htmlStr)); + this->has_html = true; + this->using_serial_html = true; + Serial.println("html set"); +} + bool EvilPortal::setHtml() { + if (this->using_serial_html) { + Serial.println("html previously set"); + return true; + } Serial.println("Setting HTML..."); #ifndef WRITE_PACKETS_SERIAL File html_file = sd_obj.getFile("/" + this->target_html_name); diff --git a/esp32_marauder/EvilPortal.h b/esp32_marauder/EvilPortal.h index 19e3f7cb9..f704e9ac8 100644 --- a/esp32_marauder/EvilPortal.h +++ b/esp32_marauder/EvilPortal.h @@ -101,11 +101,14 @@ class EvilPortal { String target_html_name = "index.html"; + bool using_serial_html; + String get_user_name(); String get_password(); void addLog(String log, int len); bool begin(LinkedList* ssids, LinkedList* access_points); void main(uint8_t scan_mode); + void setHtmlFromSerial(); };