From b3a783acb4208bb73b3569508646e833d251e2b8 Mon Sep 17 00:00:00 2001 From: Sil333033 <94360907+Sil333033@users.noreply.github.com> Date: Sat, 29 Jul 2023 22:16:51 +0200 Subject: [PATCH] Fix build --- .../wifi_marauder_pcap.c | 64 +++++++++++++++++++ .../wifi_marauder_pcap.h | 20 ++++++ .../wifi_marauder_scene_console_output.c | 3 - 3 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 applications/external/esp32cam_marauder_companion/wifi_marauder_pcap.c create mode 100644 applications/external/esp32cam_marauder_companion/wifi_marauder_pcap.h diff --git a/applications/external/esp32cam_marauder_companion/wifi_marauder_pcap.c b/applications/external/esp32cam_marauder_companion/wifi_marauder_pcap.c new file mode 100644 index 000000000..73e3d98ea --- /dev/null +++ b/applications/external/esp32cam_marauder_companion/wifi_marauder_pcap.c @@ -0,0 +1,64 @@ +#include "wifi_marauder_app_i.h" +#include "wifi_marauder_pcap.h" + +void wifi_marauder_get_prefix_from_sniff_cmd(char* dest, const char* command) { + int start, end, delta; + start = strlen("sniff"); + end = strcspn(command, " "); + delta = end - start; + strncpy(dest, command + start, end - start); + dest[delta] = '\0'; +} + +void wifi_marauder_get_prefix_from_cmd(char* dest, const char* command) { + int end; + end = strcspn(command, " "); + strncpy(dest, command, end); + dest[end] = '\0'; +} + +void wifi_marauder_create_pcap_file(WifiMarauderApp* app) { + char prefix[10]; + char capture_file_path[100]; + wifi_marauder_get_prefix_from_sniff_cmd(prefix, app->selected_tx_string); + + int i = 0; + do { + snprintf( + capture_file_path, + sizeof(capture_file_path), + "%s/%s_%d.pcap", + MARAUDER_APP_FOLDER_PCAPS, + prefix, + i); + i++; + } while(storage_file_exists(app->storage, capture_file_path)); + + if(!storage_file_open(app->capture_file, capture_file_path, FSAM_WRITE, FSOM_CREATE_ALWAYS)) { + dialog_message_show_storage_error(app->dialogs, "Cannot open pcap file"); + } +} + +void wifi_marauder_create_log_file(WifiMarauderApp* app) { + char prefix[10]; + char log_file_path[100]; + wifi_marauder_get_prefix_from_cmd(prefix, app->selected_tx_string); + + int i = 0; + do { + snprintf( + log_file_path, + sizeof(log_file_path), + "%s/%s_%d.log", + MARAUDER_APP_FOLDER_LOGS, + prefix, + i); + i++; + } while(storage_file_exists(app->storage, log_file_path)); + + if(!storage_file_open(app->log_file, log_file_path, FSAM_WRITE, FSOM_CREATE_ALWAYS)) { + dialog_message_show_storage_error(app->dialogs, "Cannot open log file"); + } else { + strcpy(app->log_file_path, log_file_path); + } +} \ No newline at end of file diff --git a/applications/external/esp32cam_marauder_companion/wifi_marauder_pcap.h b/applications/external/esp32cam_marauder_companion/wifi_marauder_pcap.h new file mode 100644 index 000000000..94f6282f3 --- /dev/null +++ b/applications/external/esp32cam_marauder_companion/wifi_marauder_pcap.h @@ -0,0 +1,20 @@ +#pragma once + +#include "furi_hal.h" + +/** + * Creates a PCAP file to store incoming packets. + * The file name will have a prefix according to the type of scan being performed by the application (Eg: raw_0.pcap) + * + * @param app Application context + */ +void wifi_marauder_create_pcap_file(WifiMarauderApp* app); + +/** + * Creates a log file to store text from console output. + * The file name will have a prefix according to the command being performed by the application (Eg: scanap_0.log) + * + * @param app Application context + */ +// same as wifi_marauder_create_pcap_file, but for log files (to save console text output) +void wifi_marauder_create_log_file(WifiMarauderApp* app); diff --git a/applications/external/wifi_marauder_companion/scenes/wifi_marauder_scene_console_output.c b/applications/external/wifi_marauder_companion/scenes/wifi_marauder_scene_console_output.c index d1ee29801..f2e5a1a57 100644 --- a/applications/external/wifi_marauder_companion/scenes/wifi_marauder_scene_console_output.c +++ b/applications/external/wifi_marauder_companion/scenes/wifi_marauder_scene_console_output.c @@ -104,9 +104,6 @@ void wifi_marauder_scene_console_output_on_enter(void* context) { wifi_marauder_uart_set_handle_rx_data_cb( app->uart, wifi_marauder_console_output_handle_rx_data_cb); // setup callback for general log rx thread - wifi_marauder_uart_set_handle_rx_data_cb( - app->lp_uart, - wifi_marauder_console_output_handle_rx_packets_cb); // setup callback for packets rx thread // Get ready to send command if((app->is_command && app->selected_tx_string) || app->script) {