wifi_marauder_scene_script_edit.c 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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(
  32. submenu, "Scan", stage_index, wifi_marauder_scene_script_edit_callback, app);
  33. break;
  34. case WifiMarauderScriptStageTypeSelect:
  35. submenu_add_item(
  36. submenu, "Select", stage_index, wifi_marauder_scene_script_edit_callback, app);
  37. break;
  38. case WifiMarauderScriptStageTypeDeauth:
  39. submenu_add_item(
  40. submenu, "Deauth", stage_index, wifi_marauder_scene_script_edit_callback, app);
  41. break;
  42. case WifiMarauderScriptStageTypeProbe:
  43. submenu_add_item(
  44. submenu, "Probe", stage_index, wifi_marauder_scene_script_edit_callback, app);
  45. break;
  46. case WifiMarauderScriptStageTypeSniffRaw:
  47. submenu_add_item(
  48. submenu, "Sniff raw", stage_index, wifi_marauder_scene_script_edit_callback, app);
  49. break;
  50. case WifiMarauderScriptStageTypeSniffBeacon:
  51. submenu_add_item(
  52. submenu,
  53. "Sniff beacon",
  54. stage_index,
  55. wifi_marauder_scene_script_edit_callback,
  56. app);
  57. break;
  58. case WifiMarauderScriptStageTypeSniffDeauth:
  59. submenu_add_item(
  60. submenu,
  61. "Sniff deauth",
  62. stage_index,
  63. wifi_marauder_scene_script_edit_callback,
  64. app);
  65. break;
  66. case WifiMarauderScriptStageTypeSniffEsp:
  67. submenu_add_item(
  68. submenu, "Sniff esp", stage_index, wifi_marauder_scene_script_edit_callback, app);
  69. break;
  70. case WifiMarauderScriptStageTypeSniffPmkid:
  71. submenu_add_item(
  72. submenu, "Sniff PMKID", stage_index, wifi_marauder_scene_script_edit_callback, app);
  73. break;
  74. case WifiMarauderScriptStageTypeSniffPwn:
  75. submenu_add_item(
  76. submenu, "Sniff pwn", stage_index, wifi_marauder_scene_script_edit_callback, app);
  77. break;
  78. case WifiMarauderScriptStageTypeBeaconList:
  79. submenu_add_item(
  80. submenu, "Beacon list", stage_index, wifi_marauder_scene_script_edit_callback, app);
  81. break;
  82. case WifiMarauderScriptStageTypeBeaconAp:
  83. submenu_add_item(
  84. submenu, "Beacon AP", stage_index, wifi_marauder_scene_script_edit_callback, app);
  85. break;
  86. case WifiMarauderScriptStageTypeExec:
  87. submenu_add_item(
  88. submenu,
  89. "Custom command",
  90. stage_index,
  91. wifi_marauder_scene_script_edit_callback,
  92. app);
  93. break;
  94. case WifiMarauderScriptStageTypeDelay:
  95. submenu_add_item(
  96. submenu, "Delay", stage_index, wifi_marauder_scene_script_edit_callback, app);
  97. break;
  98. }
  99. current_stage = current_stage->next_stage;
  100. stage_index++;
  101. }
  102. submenu_add_item(
  103. submenu, "[+] ADD STAGE", stage_index++, wifi_marauder_scene_script_edit_add_callback, app);
  104. submenu_set_selected_item(
  105. submenu, scene_manager_get_scene_state(app->scene_manager, WifiMarauderSceneScriptEdit));
  106. view_dispatcher_switch_to_view(app->view_dispatcher, WifiMarauderAppViewSubmenu);
  107. }
  108. bool wifi_marauder_scene_script_edit_on_event(void* context, SceneManagerEvent event) {
  109. UNUSED(context);
  110. UNUSED(event);
  111. return false;
  112. }
  113. void wifi_marauder_scene_script_edit_on_exit(void* context) {
  114. WifiMarauderApp* app = context;
  115. submenu_reset(app->submenu);
  116. }