subbrute_protocols.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal_subghz.h>
  4. #include <core/string.h>
  5. //typedef enum {
  6. // FrequencyProtocolField,
  7. // BitsProtocolField,
  8. // HasTeProtocolField,
  9. // RepeatProtocolField,
  10. // PresetProtocolField,
  11. // FileProtocolField,
  12. // TotalProtocolFields
  13. //} ProtocolFields;
  14. typedef enum {
  15. CAMEFileProtocol,
  16. NICEFileProtocol,
  17. ChamberlainFileProtocol,
  18. LinearFileProtocol,
  19. PrincetonFileProtocol,
  20. RAWFileProtocol,
  21. TotalFileProtocol,
  22. } SubBruteFileProtocol;
  23. typedef enum {
  24. SubBruteAttackCAME12bit303,
  25. SubBruteAttackCAME12bit307,
  26. SubBruteAttackCAME12bit433,
  27. SubBruteAttackCAME12bit868,
  28. SubBruteAttackNICE12bit433,
  29. SubBruteAttackNICE12bit868,
  30. SubBruteAttackChamberlain9bit300,
  31. SubBruteAttackChamberlain9bit315,
  32. SubBruteAttackChamberlain9bit390,
  33. SubBruteAttackLinear10bit300,
  34. SubBruteAttackLinear10bit310,
  35. SubBruteAttackLoadFile,
  36. SubBruteAttackTotalCount,
  37. } SubBruteAttacks;
  38. typedef struct {
  39. uint32_t frequency;
  40. uint8_t bits;
  41. uint8_t te;
  42. uint8_t repeat;
  43. FuriHalSubGhzPreset preset;
  44. SubBruteFileProtocol file;
  45. } SubBruteProtocol;
  46. const SubBruteProtocol* subbrute_protocol(SubBruteAttacks index);
  47. const char* subbrute_protocol_preset(FuriHalSubGhzPreset preset);
  48. const char* subbrute_protocol_file(SubBruteFileProtocol protocol);
  49. FuriHalSubGhzPreset subbrute_protocol_convert_preset(FuriString* preset_name);
  50. SubBruteFileProtocol subbrute_protocol_file_protocol_name(FuriString* name);
  51. const char* subbrute_protocol_name(SubBruteAttacks index);
  52. FuriString*
  53. subbrute_protocol_default_payload(uint64_t step, uint8_t bits, uint8_t te, uint8_t repeat);
  54. FuriString* subbrute_protocol_file_payload(
  55. uint64_t step,
  56. uint8_t bits,
  57. uint8_t te,
  58. uint8_t repeat,
  59. uint8_t load_index,
  60. const char* file_key);
  61. FuriString* subbrute_protocol_default_generate_file(
  62. uint32_t frequency,
  63. FuriHalSubGhzPreset preset,
  64. SubBruteFileProtocol file,
  65. uint64_t step,
  66. uint8_t bits,
  67. uint8_t te,
  68. uint8_t repeat);
  69. FuriString* subbrute_protocol_file_generate_file(
  70. uint32_t frequency,
  71. FuriHalSubGhzPreset preset,
  72. SubBruteFileProtocol file,
  73. uint64_t step,
  74. uint8_t bits,
  75. uint8_t te,
  76. uint8_t repeat,
  77. uint8_t load_index,
  78. const char* file_key);
  79. uint64_t subbrute_protocol_calc_max_value(SubBruteAttacks attack_type, uint8_t bits);