wifi_marauder_scene_script_edit.c 4.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #include "../wifi_marauder_app_i.h"
  2. static void wifi_marauder_scene_script_edit_callback(void* context, uint32_t index) {
  3. WifiMarauderApp* app = context;
  4. WifiMarauderScriptStage* current_stage = app->script->first_stage;
  5. uint32_t stage_index = 0;
  6. while (current_stage != NULL && stage_index < index) {
  7. current_stage = current_stage->next_stage;
  8. stage_index++;
  9. }
  10. app->script_edit_selected_stage = current_stage;
  11. if (app->script_edit_selected_stage != NULL) {
  12. scene_manager_set_scene_state(app->scene_manager, WifiMarauderSceneScriptEdit, index);
  13. scene_manager_next_scene(app->scene_manager, WifiMarauderSceneScriptStageEdit);
  14. }
  15. }
  16. static void wifi_marauder_scene_script_edit_add_callback(void* context, uint32_t index) {
  17. WifiMarauderApp* app = context;
  18. scene_manager_set_scene_state(app->scene_manager, WifiMarauderSceneScriptEdit, index);
  19. scene_manager_next_scene(app->scene_manager, WifiMarauderSceneScriptStageAdd);
  20. }
  21. void wifi_marauder_scene_script_edit_on_enter(void* context) {
  22. WifiMarauderApp* app = context;
  23. Submenu* submenu = app->submenu;
  24. WifiMarauderScript* script = app->script;
  25. submenu_set_header(submenu, script->name);
  26. WifiMarauderScriptStage* current_stage = script->first_stage;
  27. int stage_index = 0;
  28. while (current_stage != NULL) {
  29. switch (current_stage->type) {
  30. case WifiMarauderScriptStageTypeScan:
  31. submenu_add_item(submenu, "Scan", stage_index, wifi_marauder_scene_script_edit_callback, app);
  32. break;
  33. case WifiMarauderScriptStageTypeSelect:
  34. submenu_add_item(submenu, "Select", stage_index, wifi_marauder_scene_script_edit_callback, app);
  35. break;
  36. case WifiMarauderScriptStageTypeDeauth:
  37. submenu_add_item(submenu, "Deauth", stage_index, wifi_marauder_scene_script_edit_callback, app);
  38. break;
  39. case WifiMarauderScriptStageTypeProbe:
  40. submenu_add_item(submenu, "Probe", stage_index, wifi_marauder_scene_script_edit_callback, app);
  41. break;
  42. case WifiMarauderScriptStageTypeSniffRaw:
  43. submenu_add_item(submenu, "Sniff raw", stage_index, wifi_marauder_scene_script_edit_callback, app);
  44. break;
  45. case WifiMarauderScriptStageTypeSniffBeacon:
  46. submenu_add_item(submenu, "Sniff beacon", stage_index, wifi_marauder_scene_script_edit_callback, app);
  47. break;
  48. case WifiMarauderScriptStageTypeSniffDeauth:
  49. submenu_add_item(submenu, "Sniff deauth", stage_index, wifi_marauder_scene_script_edit_callback, app);
  50. break;
  51. case WifiMarauderScriptStageTypeSniffEsp:
  52. submenu_add_item(submenu, "Sniff esp", stage_index, wifi_marauder_scene_script_edit_callback, app);
  53. break;
  54. case WifiMarauderScriptStageTypeSniffPmkid:
  55. submenu_add_item(submenu, "Sniff PMKID", stage_index, wifi_marauder_scene_script_edit_callback, app);
  56. break;
  57. case WifiMarauderScriptStageTypeSniffPwn:
  58. submenu_add_item(submenu, "Sniff pwn", stage_index, wifi_marauder_scene_script_edit_callback, app);
  59. break;
  60. case WifiMarauderScriptStageTypeBeaconList:
  61. submenu_add_item(submenu, "Beacon list", stage_index, wifi_marauder_scene_script_edit_callback, app);
  62. break;
  63. case WifiMarauderScriptStageTypeBeaconAp:
  64. submenu_add_item(submenu, "Beacon AP", stage_index, wifi_marauder_scene_script_edit_callback, app);
  65. break;
  66. case WifiMarauderScriptStageTypeExec:
  67. submenu_add_item(submenu, "Custom command", stage_index, wifi_marauder_scene_script_edit_callback, app);
  68. break;
  69. case WifiMarauderScriptStageTypeDelay:
  70. submenu_add_item(submenu, "Delay", stage_index, wifi_marauder_scene_script_edit_callback, app);
  71. break;
  72. }
  73. current_stage = current_stage->next_stage;
  74. stage_index++;
  75. }
  76. submenu_add_item(submenu, "[+] ADD STAGE", stage_index++, wifi_marauder_scene_script_edit_add_callback, app);
  77. submenu_set_selected_item(submenu, scene_manager_get_scene_state(app->scene_manager, WifiMarauderSceneScriptEdit));
  78. view_dispatcher_switch_to_view(app->view_dispatcher, WifiMarauderAppViewSubmenu);
  79. }
  80. bool wifi_marauder_scene_script_edit_on_event(void* context, SceneManagerEvent event) {
  81. UNUSED(context);
  82. UNUSED(event);
  83. return false;
  84. }
  85. void wifi_marauder_scene_script_edit_on_exit(void* context) {
  86. WifiMarauderApp* app = context;
  87. submenu_reset(app->submenu);
  88. }