mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-26 03:39:58 -07:00
120 lines
3.3 KiB
C
120 lines
3.3 KiB
C
#pragma once
|
|
|
|
#include <furi.h>
|
|
#include <furi_hal_subghz.h>
|
|
#include <core/string.h>
|
|
#include <toolbox/stream/stream.h>
|
|
|
|
typedef enum {
|
|
CAMEFileProtocol,
|
|
NICEFileProtocol,
|
|
ChamberlainFileProtocol,
|
|
LinearFileProtocol,
|
|
PrincetonFileProtocol,
|
|
RAWFileProtocol,
|
|
BETTFileProtocol,
|
|
ClemsaFileProtocol,
|
|
DoitrandFileProtocol,
|
|
GateTXFileProtocol,
|
|
MagellanFileProtocol,
|
|
IntertechnoV3FileProtocol,
|
|
AnsonicFileProtocol,
|
|
SMC5326FileProtocol,
|
|
UNILARMFileProtocol,
|
|
PT2260FileProtocol,
|
|
HoneywellFileProtocol,
|
|
UnknownFileProtocol,
|
|
TotalFileProtocol,
|
|
} SubBruteFileProtocol;
|
|
|
|
typedef enum {
|
|
SubBruteAttackCAME12bit303,
|
|
SubBruteAttackCAME12bit307,
|
|
SubBruteAttackCAME12bit315,
|
|
SubBruteAttackCAME12bit433,
|
|
SubBruteAttackCAME12bit868,
|
|
SubBruteAttackNICE12bit433,
|
|
SubBruteAttackNICE12bit868,
|
|
SubBruteAttackAnsonic12bit433075,
|
|
SubBruteAttackAnsonic12bit433,
|
|
SubBruteAttackAnsonic12bit434,
|
|
SubBruteAttackChamberlain9bit300,
|
|
SubBruteAttackChamberlain9bit315,
|
|
SubBruteAttackChamberlain9bit390,
|
|
SubBruteAttackChamberlain9bit433,
|
|
SubBruteAttackChamberlain8bit300,
|
|
SubBruteAttackChamberlain8bit315,
|
|
SubBruteAttackChamberlain8bit390,
|
|
SubBruteAttackChamberlain7bit300,
|
|
SubBruteAttackChamberlain7bit315,
|
|
SubBruteAttackChamberlain7bit390,
|
|
SubBruteAttackLinear10bit300,
|
|
SubBruteAttackLinear10bit310,
|
|
SubBruteAttackUNILARM24bit330,
|
|
SubBruteAttackUNILARM24bit433,
|
|
SubBruteAttackSMC532624bit330,
|
|
SubBruteAttackSMC532624bit433,
|
|
SubBruteAttackPT226024bit315,
|
|
SubBruteAttackPT226024bit330,
|
|
SubBruteAttackPT226024bit390,
|
|
SubBruteAttackPT226024bit433,
|
|
SubBruteAttackLoadFile,
|
|
SubBruteAttackTotalCount,
|
|
} SubBruteAttacks;
|
|
|
|
typedef struct {
|
|
uint32_t frequency;
|
|
uint8_t bits;
|
|
uint32_t te;
|
|
uint8_t repeat;
|
|
FuriHalSubGhzPreset preset;
|
|
SubBruteFileProtocol file;
|
|
} SubBruteProtocol;
|
|
|
|
const SubBruteProtocol* subbrute_protocol(SubBruteAttacks index);
|
|
const char* subbrute_protocol_preset(FuriHalSubGhzPreset preset);
|
|
const char* subbrute_protocol_file(SubBruteFileProtocol protocol);
|
|
FuriHalSubGhzPreset subbrute_protocol_convert_preset(FuriString* preset_name);
|
|
SubBruteFileProtocol subbrute_protocol_file_protocol_name(FuriString* name);
|
|
uint8_t subbrute_protocol_repeats_count(SubBruteAttacks index);
|
|
const char* subbrute_protocol_name(SubBruteAttacks index);
|
|
|
|
void subbrute_protocol_default_payload(
|
|
Stream* stream,
|
|
SubBruteFileProtocol file,
|
|
uint64_t step,
|
|
uint8_t bits,
|
|
uint32_t te,
|
|
uint8_t repeat);
|
|
void subbrute_protocol_file_payload(
|
|
Stream* stream,
|
|
uint64_t step,
|
|
uint8_t bits,
|
|
uint32_t te,
|
|
uint8_t repeat,
|
|
uint8_t bit_index,
|
|
uint64_t file_key,
|
|
bool two_bytes);
|
|
void subbrute_protocol_default_generate_file(
|
|
Stream* stream,
|
|
uint32_t frequency,
|
|
FuriHalSubGhzPreset preset,
|
|
SubBruteFileProtocol file,
|
|
uint64_t step,
|
|
uint8_t bits,
|
|
uint32_t te,
|
|
uint8_t repeat);
|
|
void subbrute_protocol_file_generate_file(
|
|
Stream* stream,
|
|
uint32_t frequency,
|
|
FuriHalSubGhzPreset preset,
|
|
SubBruteFileProtocol file,
|
|
uint64_t step,
|
|
uint8_t bits,
|
|
uint32_t te,
|
|
uint8_t repeat,
|
|
uint8_t bit_index,
|
|
uint64_t file_key,
|
|
bool two_bytes);
|
|
uint64_t
|
|
subbrute_protocol_calc_max_value(SubBruteAttacks attack_type, uint8_t bits, bool two_bytes); |