Skip to content

Commit

Permalink
upd wifi marauder companion
Browse files Browse the repository at this point in the history
by Willy-JL
  • Loading branch information
xMasterX committed Mar 15, 2024
1 parent c810e25 commit 0885def
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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) {
Expand Down Expand Up @@ -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)
Expand All @@ -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");
}
}

Expand Down Expand Up @@ -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);
}
}
}

Expand Down
6 changes: 5 additions & 1 deletion base_pack/wifi_marauder_companion/wifi_marauder_app.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)) {
Expand Down
1 change: 1 addition & 0 deletions base_pack/wifi_marauder_companion/wifi_marauder_app_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down

0 comments on commit 0885def

Please sign in to comment.