wifi_marauder_script.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #pragma once
  2. #include <storage/storage.h>
  3. #include "cJSON.h"
  4. typedef enum {
  5. WifiMarauderScriptStageTypeScan,
  6. WifiMarauderScriptStageTypeSelect,
  7. WifiMarauderScriptStageTypeSniffPmkid,
  8. WifiMarauderScriptStageTypeBeaconList,
  9. } WifiMarauderScriptStageType;
  10. typedef enum {
  11. WifiMarauderScriptScanTypeAp,
  12. WifiMarauderScriptScanTypeStation
  13. } WifiMarauderScriptScanType;
  14. typedef enum {
  15. WifiMarauderScriptSelectTypeAp,
  16. WifiMarauderScriptSelectTypeStation,
  17. WifiMarauderScriptSelectTypeSsid
  18. } WifiMarauderScriptSelectType;
  19. // Filters
  20. typedef enum {
  21. WifiMarauderScriptFilterTypeContains,
  22. WifiMarauderScriptFilterTypeEqual,
  23. } WifiMarauderScriptFilterType;
  24. typedef struct WifiMarauderScriptSelectFilter {
  25. WifiMarauderScriptFilterType type;
  26. char* filter_string;
  27. } WifiMarauderScriptSelectFilter;
  28. // Stages
  29. typedef struct WifiMarauderScriptStage {
  30. WifiMarauderScriptStageType type;
  31. void* stage;
  32. struct WifiMarauderScriptStage *next_stage;
  33. } WifiMarauderScriptStage;
  34. typedef struct WifiMarauderScriptStageScan {
  35. WifiMarauderScriptScanType type;
  36. int timeout;
  37. } WifiMarauderScriptStageScan;
  38. typedef struct WifiMarauderScriptStageSelect {
  39. WifiMarauderScriptSelectType type;
  40. WifiMarauderScriptSelectFilter *filters;
  41. int filter_count;
  42. bool allow_repeat;
  43. } WifiMarauderScriptStageSelect;
  44. typedef struct WifiMarauderScriptStageSniffPmkid {
  45. bool force_deauth;
  46. int timeout;
  47. } WifiMarauderScriptStageSniffPmkid;
  48. typedef struct WifiMarauderScriptStageBeaconList {
  49. char **ssids;
  50. int ssid_count;
  51. int timeout;
  52. } WifiMarauderScriptStageBeaconList;
  53. // Script
  54. typedef struct WifiMarauderScript {
  55. char* name;
  56. WifiMarauderScriptStage *first_stage;
  57. int repeat;
  58. } WifiMarauderScript;
  59. WifiMarauderScript *wifi_marauder_script_alloc();
  60. WifiMarauderScript *wifi_marauder_script_parse_raw(const char* script_raw);
  61. WifiMarauderScript *wifi_marauder_script_parse_file(const char* file_path, Storage* storage);
  62. //void* wifi_marauder_script_get_stage(WifiMarauderScript *script, WifiMarauderScriptStageType stage);
  63. void wifi_marauder_script_free(WifiMarauderScript *script);