subbrute.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <input/input.h>
  5. #include <gui/gui.h>
  6. #include "m-string.h"
  7. #include <toolbox/stream/stream.h>
  8. #include <lib/subghz/transmitter.h>
  9. #include <lib/subghz/receiver.h>
  10. #include <flipper_format/flipper_format_i.h>
  11. #include <dialogs/dialogs.h>
  12. #include <notification/notification.h>
  13. #include <notification/notification_messages.h>
  14. #include <gui/view_dispatcher.h>
  15. #include <gui/modules/text_input.h>
  16. #include <gui/modules/popup.h>
  17. #define TAG "SUBBRUTE"
  18. typedef enum {
  19. NoneScene,
  20. SceneSelectFile,
  21. SceneSelectField,
  22. SceneAttack,
  23. SceneEntryPoint,
  24. SceneSaveName
  25. } SubBruteScene;
  26. typedef enum {
  27. SubBruteAttackLoadFile,
  28. SubBruteAttackCAME12bit307,
  29. SubBruteAttackCAME12bit433,
  30. SubBruteAttackCAME12bit868,
  31. SubBruteAttackChamberlain9bit315,
  32. SubBruteAttackChamberlain9bit390,
  33. SubBruteAttackLinear10bit300,
  34. SubBruteAttackLinear10bit310,
  35. SubBruteAttackNICE12bit433,
  36. SubBruteAttackNICE12bit868,
  37. } SubBruteAttacks;
  38. typedef enum {
  39. EventTypeTick,
  40. EventTypeKey,
  41. EventTypeCustom,
  42. } EventType;
  43. typedef struct {
  44. EventType evt_type;
  45. InputKey key;
  46. InputType input_type;
  47. } SubBruteEvent;
  48. // STRUCTS
  49. typedef struct {
  50. // Application stuff
  51. bool is_running;
  52. bool is_attacking;
  53. bool is_thread_running;
  54. bool close_thread_please;
  55. SubBruteScene current_scene;
  56. SubBruteScene previous_scene;
  57. NotificationApp* notify;
  58. Gui* gui;
  59. ViewDispatcher* view_dispatcher;
  60. TextInput* text_input;
  61. Popup* popup;
  62. // SubGhz Stuff
  63. FuriThread* bruthread;
  64. FlipperFormat* flipper_format;
  65. SubGhzEnvironment* environment;
  66. SubGhzTransmitter* transmitter;
  67. SubGhzReceiver* receiver;
  68. SubGhzProtocolDecoderBase* decoder_result;
  69. SubGhzPresetDefinition* preset_def;
  70. string_t preset;
  71. Stream* stream;
  72. string_t protocol;
  73. uint32_t frequency;
  74. uint32_t frequency_cal;
  75. uint32_t repeat;
  76. uint32_t bit;
  77. string_t key;
  78. uint32_t te;
  79. // Context Stuff
  80. DialogsApp* dialogs;
  81. char file_name_tmp[64];
  82. string_t file_path;
  83. string_t file_path_tmp;
  84. string_t notification_msg;
  85. uint8_t key_index;
  86. uint64_t payload;
  87. string_t candidate;
  88. uint8_t str_index;
  89. string_t flipper_format_string;
  90. SubBruteAttacks attack;
  91. //Menu stuff
  92. uint8_t menu_index;
  93. // RAW stuff
  94. string_t subbrute_raw_one;
  95. string_t subbrute_raw_zero;
  96. string_t subbrute_raw_stop;
  97. } SubBruteState;