1
- #pragma once
2
-
3
- #include "subbrute_protocols.h"
4
- #include <lib/subghz/protocols/base.h>
5
- #include <lib/subghz/transmitter.h>
6
- #include <lib/subghz/receiver.h>
7
- #include <lib/subghz/environment.h>
8
- #include "helpers/radio_device_loader.h"
9
-
10
- #define SUBBRUTE_TEXT_STORE_SIZE 256
11
-
12
- #define SUBBRUTE_MAX_LEN_NAME 64
13
- #define SUBBRUTE_PATH EXT_PATH("subghz")
14
- #define SUBBRUTE_FILE_EXT ".sub"
15
-
16
- #define SUBBRUTE_PAYLOAD_SIZE 16
17
-
18
- typedef enum {
19
- SubBruteFileResultUnknown ,
20
- SubBruteFileResultOk ,
21
- SubBruteFileResultErrorOpenFile ,
22
- SubBruteFileResultMissingOrIncorrectHeader ,
23
- SubBruteFileResultFrequencyNotAllowed ,
24
- SubBruteFileResultMissingOrIncorrectFrequency ,
25
- SubBruteFileResultPresetInvalid ,
26
- SubBruteFileResultMissingProtocol ,
27
- SubBruteFileResultProtocolNotSupported ,
28
- SubBruteFileResultDynamicProtocolNotValid ,
29
- SubBruteFileResultProtocolNotFound ,
30
- SubBruteFileResultMissingOrIncorrectBit ,
31
- SubBruteFileResultMissingOrIncorrectKey ,
32
- SubBruteFileResultMissingOrIncorrectTe ,
33
- } SubBruteFileResult ;
34
-
35
- typedef struct {
36
- const SubBruteProtocol * protocol_info ;
37
- SubBruteProtocol * file_protocol_info ;
38
-
39
- // Current step
40
- uint64_t current_step ;
41
-
42
- // SubGhz
43
- SubGhzReceiver * receiver ;
44
- SubGhzProtocolDecoderBase * decoder_result ;
45
- SubGhzEnvironment * environment ;
46
- const SubGhzDevice * radio_device ;
47
-
48
- // Attack state
49
- SubBruteAttacks attack ;
50
- uint64_t max_value ;
51
- uint8_t extra_repeats ;
52
-
53
- // Loaded info for attack type
54
- uint64_t key_from_file ;
55
- uint64_t current_key_from_file ;
56
- bool two_bytes ;
57
- // Index of group to bruteforce in loaded file
58
- uint8_t bit_index ;
59
- } SubBruteDevice ;
60
-
61
- SubBruteDevice * subbrute_device_alloc (const SubGhzDevice * radio_device ; );
62
- void subbrute_device_free (SubBruteDevice * instance );
63
-
64
- bool subbrute_device_save_file (SubBruteDevice * instance , const char * key_name );
65
- const char * subbrute_device_error_get_desc (SubBruteFileResult error_id );
66
- SubBruteFileResult subbrute_device_attack_set (
67
- SubBruteDevice * context ,
68
- SubBruteAttacks type ,
69
- uint8_t extra_repeats );
70
- uint8_t subbrute_device_load_from_file (SubBruteDevice * context , const char * file_path );
71
-
72
- uint64_t subbrute_device_add_step (SubBruteDevice * instance , int8_t step );
73
-
74
- void subbrute_device_free_protocol_info (SubBruteDevice * instance );
75
- void subbrute_device_attack_set_default_values (
76
- SubBruteDevice * context ,
77
- SubBruteAttacks default_attack );
1
+ #pragma once
2
+
3
+ #include "subbrute_protocols.h"
4
+ #include <lib/subghz/protocols/base.h>
5
+ #include <lib/subghz/transmitter.h>
6
+ #include <lib/subghz/receiver.h>
7
+ #include <lib/subghz/environment.h>
8
+ #include "helpers/radio_device_loader.h"
9
+
10
+ #define SUBBRUTE_TEXT_STORE_SIZE 256
11
+
12
+ #define SUBBRUTE_MAX_LEN_NAME 64
13
+ #define SUBBRUTE_PATH EXT_PATH("subghz")
14
+ #define SUBBRUTE_FILE_EXT ".sub"
15
+
16
+ #define SUBBRUTE_PAYLOAD_SIZE 16
17
+
18
+ typedef enum {
19
+ SubBruteFileResultUnknown ,
20
+ SubBruteFileResultOk ,
21
+ SubBruteFileResultErrorOpenFile ,
22
+ SubBruteFileResultMissingOrIncorrectHeader ,
23
+ SubBruteFileResultFrequencyNotAllowed ,
24
+ SubBruteFileResultMissingOrIncorrectFrequency ,
25
+ SubBruteFileResultPresetInvalid ,
26
+ SubBruteFileResultMissingProtocol ,
27
+ SubBruteFileResultProtocolNotSupported ,
28
+ SubBruteFileResultDynamicProtocolNotValid ,
29
+ SubBruteFileResultProtocolNotFound ,
30
+ SubBruteFileResultMissingOrIncorrectBit ,
31
+ SubBruteFileResultMissingOrIncorrectKey ,
32
+ SubBruteFileResultMissingOrIncorrectTe ,
33
+ } SubBruteFileResult ;
34
+
35
+ typedef struct {
36
+ const SubBruteProtocol * protocol_info ;
37
+ SubBruteProtocol * file_protocol_info ;
38
+
39
+ // Current step
40
+ uint64_t current_step ;
41
+
42
+ // SubGhz
43
+ SubGhzReceiver * receiver ;
44
+ SubGhzProtocolDecoderBase * decoder_result ;
45
+ SubGhzEnvironment * environment ;
46
+ const SubGhzDevice * radio_device ;
47
+
48
+ // Attack state
49
+ SubBruteAttacks attack ;
50
+ uint64_t max_value ;
51
+ uint8_t extra_repeats ;
52
+
53
+ // Loaded info for attack type
54
+ uint64_t key_from_file ;
55
+ uint64_t current_key_from_file ;
56
+ bool two_bytes ;
57
+ // Index of group to bruteforce in loaded file
58
+ uint8_t bit_index ;
59
+ } SubBruteDevice ;
60
+
61
+ SubBruteDevice * subbrute_device_alloc (const SubGhzDevice * radio_device );
62
+ void subbrute_device_free (SubBruteDevice * instance );
63
+
64
+ bool subbrute_device_save_file (SubBruteDevice * instance , const char * key_name );
65
+ const char * subbrute_device_error_get_desc (SubBruteFileResult error_id );
66
+ SubBruteFileResult subbrute_device_attack_set (
67
+ SubBruteDevice * context ,
68
+ SubBruteAttacks type ,
69
+ uint8_t extra_repeats );
70
+ uint8_t subbrute_device_load_from_file (SubBruteDevice * context , const char * file_path );
71
+
72
+ uint64_t subbrute_device_add_step (SubBruteDevice * instance , int8_t step );
73
+
74
+ void subbrute_device_free_protocol_info (SubBruteDevice * instance );
75
+ void subbrute_device_attack_set_default_values (
76
+ SubBruteDevice * context ,
77
+ SubBruteAttacks default_attack );
0 commit comments