Pārlūkot izejas kodu

upd wifi marauder companion

by Willy-JL
MX 1 gadu atpakaļ
vecāks
revīzija
22c5ab466d

+ 30 - 12
scenes/wifi_marauder_scene_console_output.c

@@ -8,7 +8,7 @@ char* _wifi_marauder_get_prefix_from_cmd(const char* command) {
     return prefix;
 }
 
-bool _wifi_marauder_is_save_pcaps_enabled(WifiMarauderApp* app) {
+bool _wifi_marauder_is_saving_enabled(WifiMarauderApp* app) {
     // If it is a script that contains a sniff function
     if(app->script != NULL) {
         if(app->script->save_pcap == WifiMarauderScriptBooleanFalse) {
@@ -32,9 +32,12 @@ bool _wifi_marauder_is_save_pcaps_enabled(WifiMarauderApp* app) {
     if(!app->ok_to_save_pcaps) {
         return false;
     }
-    // If it is a sniff function
+    // If it is a sniff/wardrive/btwardrive/evilportal function
     return app->is_command && app->selected_tx_string &&
-           strncmp("sniff", app->selected_tx_string, strlen("sniff")) == 0;
+           (strncmp("sniff", app->selected_tx_string, strlen("sniff")) == 0 ||
+            strncmp("wardrive", app->selected_tx_string, strlen("wardrive")) == 0 ||
+            strncmp("btwardrive", app->selected_tx_string, strlen("btwardrive")) == 0 ||
+            strncmp("evilportal", app->selected_tx_string, strlen("evilportal")) == 0);
 }
 
 void wifi_marauder_console_output_handle_rx_data_cb(uint8_t* buf, size_t len, void* context) {
@@ -118,10 +121,12 @@ void wifi_marauder_scene_console_output_on_enter(void* context) {
 
     // Get ready to send command
     if((app->is_command && app->selected_tx_string) || app->script) {
-        const char* prefix =
-            strlen(app->selected_tx_string) > 0 ?
-                _wifi_marauder_get_prefix_from_cmd(app->selected_tx_string) : // Function name
-                app->script->name; // Script name
+        char* prefix_buf = NULL;
+        if(strlen(app->selected_tx_string) > 0) {
+            prefix_buf = _wifi_marauder_get_prefix_from_cmd(app->selected_tx_string);
+        }
+        const char* prefix = prefix_buf ? prefix_buf : // Function name
+                                          app->script->name; // Script name
 
         // Create files *before* sending command
         // (it takes time to iterate through the directory)
@@ -138,13 +143,22 @@ void wifi_marauder_scene_console_output_on_enter(void* context) {
             }
         }
 
-        // If it is a sniff function or script, open the pcap file for recording
-        if(_wifi_marauder_is_save_pcaps_enabled(app)) {
-            if(sequential_file_open(
-                   app->storage, app->capture_file, MARAUDER_APP_FOLDER_PCAPS, prefix, "pcap")) {
+        // If it is a sniff/wardrive/btwardrive/evilportal function or script, open the capture file for recording
+        if(_wifi_marauder_is_saving_enabled(app)) {
+            const char* folder = NULL;
+            const char* extension = NULL;
+            if(app->script || // Scripts only support sniff functions, but selected_tx_string is empty
+               strncmp("sniff", app->selected_tx_string, strlen("sniff")) == 0) {
+                folder = MARAUDER_APP_FOLDER_PCAPS;
+                extension = "pcap";
+            } else {
+                folder = MARAUDER_APP_FOLDER_DUMPS;
+                extension = "txt";
+            }
+            if(sequential_file_open(app->storage, app->capture_file, folder, prefix, extension)) {
                 app->is_writing_pcap = true;
             } else {
-                dialog_message_show_storage_error(app->dialogs, "Cannot open pcap file");
+                dialog_message_show_storage_error(app->dialogs, "Cannot open capture file");
             }
         }
 
@@ -185,6 +199,10 @@ void wifi_marauder_scene_console_output_on_enter(void* context) {
             app->script_worker = wifi_marauder_script_worker_alloc(app->uart);
             wifi_marauder_script_worker_start(app->script_worker, app->script);
         }
+
+        if(prefix_buf) {
+            free(prefix_buf);
+        }
     }
 }
 

+ 5 - 1
wifi_marauder_app.c

@@ -103,8 +103,12 @@ void wifi_marauder_make_app_folder(WifiMarauderApp* app) {
         dialog_message_show_storage_error(app->dialogs, "Cannot create\npcaps folder");
     }
 
+    if(!storage_simply_mkdir(app->storage, MARAUDER_APP_FOLDER_DUMPS)) {
+        dialog_message_show_storage_error(app->dialogs, "Cannot create\ndumps folder");
+    }
+
     if(!storage_simply_mkdir(app->storage, MARAUDER_APP_FOLDER_LOGS)) {
-        dialog_message_show_storage_error(app->dialogs, "Cannot create\npcaps folder");
+        dialog_message_show_storage_error(app->dialogs, "Cannot create\nlogs folder");
     }
 
     if(!storage_simply_mkdir(app->storage, MARAUDER_APP_FOLDER_SCRIPTS)) {

+ 1 - 0
wifi_marauder_app_i.h

@@ -36,6 +36,7 @@
 #define MARAUDER_APP_FOLDER EXT_PATH(MARAUDER_APP_FOLDER_USER)
 #define MARAUDER_APP_FOLDER_HTML MARAUDER_APP_FOLDER "/html"
 #define MARAUDER_APP_FOLDER_PCAPS MARAUDER_APP_FOLDER "/pcaps"
+#define MARAUDER_APP_FOLDER_DUMPS MARAUDER_APP_FOLDER "/dumps"
 #define MARAUDER_APP_FOLDER_LOGS MARAUDER_APP_FOLDER "/logs"
 #define MARAUDER_APP_FOLDER_USER_PCAPS MARAUDER_APP_FOLDER_USER "/pcaps"
 #define MARAUDER_APP_FOLDER_USER_LOGS MARAUDER_APP_FOLDER_USER "/logs"