mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-07-18 00:38:10 -07:00
Merge branch 'UNLEASHED' into 420
This commit is contained in:
+5
-6
@@ -1,10 +1,9 @@
|
||||
### New changes
|
||||
* PR: RFID Fuzzer - support for HIDProx, update for UI (PR #74 by mvanzanten) (xMasterX -> time between cards set to 6)
|
||||
* Fix NFC User dict (list) crash, now it displays only first 200 elements for large lists
|
||||
* Fix SubGHz transmitter GUI button
|
||||
* Fix SubGHz Magellen protocol GUI
|
||||
* Fix null pointer dereference crash in Archive -> Info in root folder (+ fix long path names display)
|
||||
* OFW: SubGHz: Adding checks for get_upload functions
|
||||
* Plugins: Fix RFID Fuzzer crashes
|
||||
* SubGHz: Fix Nice Flor S crash
|
||||
* SubGHz: Allow saving signals for subghz protocols without encoder (sending is not possible)
|
||||
* Some random names added
|
||||
* Fix `debug_pack` to allow building debug builds with extra parameter for `./fbt` (check previous releases for info)
|
||||
|
||||
#### **DFU files no longer included in releases to avoid issues with wrong manual installation of assets - use .tgz file with qFlipper, or install automatically via web updater or use microSD update package**
|
||||
|
||||
|
||||
@@ -25,13 +25,13 @@ App(
|
||||
apptype=FlipperAppType.METAPACKAGE,
|
||||
provides=[
|
||||
"gpio",
|
||||
"ibutton",
|
||||
#"ibutton",
|
||||
"infrared",
|
||||
"lfrfid",
|
||||
"nfc",
|
||||
"subghz",
|
||||
"bad_usb",
|
||||
"u2f",
|
||||
#"bad_usb",
|
||||
#"u2f",
|
||||
"fap_loader",
|
||||
"archive",
|
||||
],
|
||||
|
||||
@@ -44,6 +44,11 @@ void flipfrid_scene_run_attack_on_enter(FlipFridState* context) {
|
||||
context->attack_step = 0;
|
||||
context->dict = protocol_dict_alloc(lfrfid_protocols, LFRFIDProtocolMax);
|
||||
context->worker = lfrfid_worker_alloc(context->dict);
|
||||
if(context->proto == HIDProx) {
|
||||
context->protocol = protocol_dict_get_protocol_by_name(context->dict, "HIDProx");
|
||||
} else {
|
||||
context->protocol = protocol_dict_get_protocol_by_name(context->dict, "EM4100");
|
||||
}
|
||||
}
|
||||
|
||||
void flipfrid_scene_run_attack_on_exit(FlipFridState* context) {
|
||||
@@ -68,9 +73,6 @@ void flipfrid_scene_run_attack_on_tick(FlipFridState* context) {
|
||||
switch(context->attack) {
|
||||
case FlipFridAttackDefaultValues:
|
||||
if(context->proto == EM4100) {
|
||||
context->protocol =
|
||||
protocol_dict_get_protocol_by_name(context->dict, "EM4100");
|
||||
|
||||
context->payload[0] = id_list[context->attack_step][0];
|
||||
context->payload[1] = id_list[context->attack_step][1];
|
||||
context->payload[2] = id_list[context->attack_step][2];
|
||||
@@ -88,9 +90,6 @@ void flipfrid_scene_run_attack_on_tick(FlipFridState* context) {
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
context->protocol =
|
||||
protocol_dict_get_protocol_by_name(context->dict, "HIDProx");
|
||||
|
||||
context->payload[0] = id_list_hid[context->attack_step][0];
|
||||
context->payload[1] = id_list_hid[context->attack_step][1];
|
||||
context->payload[2] = id_list_hid[context->attack_step][2];
|
||||
@@ -113,9 +112,6 @@ void flipfrid_scene_run_attack_on_tick(FlipFridState* context) {
|
||||
|
||||
case FlipFridAttackBfCustomerId:
|
||||
if(context->proto == EM4100) {
|
||||
context->protocol =
|
||||
protocol_dict_get_protocol_by_name(context->dict, "EM4100");
|
||||
|
||||
context->payload[0] = context->attack_step;
|
||||
context->payload[1] = 0x00;
|
||||
context->payload[2] = 0x00;
|
||||
@@ -133,9 +129,6 @@ void flipfrid_scene_run_attack_on_tick(FlipFridState* context) {
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
context->protocol =
|
||||
protocol_dict_get_protocol_by_name(context->dict, "HIDProx");
|
||||
|
||||
context->payload[0] = context->attack_step;
|
||||
context->payload[1] = 0x00;
|
||||
context->payload[2] = 0x00;
|
||||
@@ -157,9 +150,6 @@ void flipfrid_scene_run_attack_on_tick(FlipFridState* context) {
|
||||
|
||||
case FlipFridAttackLoadFile:
|
||||
if(context->proto == EM4100) {
|
||||
context->protocol =
|
||||
protocol_dict_get_protocol_by_name(context->dict, "EM4100");
|
||||
|
||||
context->payload[0] = context->data[0];
|
||||
context->payload[1] = context->data[1];
|
||||
context->payload[2] = context->data[2];
|
||||
@@ -180,9 +170,6 @@ void flipfrid_scene_run_attack_on_tick(FlipFridState* context) {
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
context->protocol =
|
||||
protocol_dict_get_protocol_by_name(context->dict, "HIDProx");
|
||||
|
||||
context->payload[0] = context->data[0];
|
||||
context->payload[1] = context->data[1];
|
||||
context->payload[2] = context->data[2];
|
||||
@@ -207,9 +194,6 @@ void flipfrid_scene_run_attack_on_tick(FlipFridState* context) {
|
||||
|
||||
case FlipFridAttackLoadFileCustomUids:
|
||||
if(context->proto == EM4100) {
|
||||
context->protocol =
|
||||
protocol_dict_get_protocol_by_name(context->dict, "EM4100");
|
||||
|
||||
while(true) {
|
||||
string_reset(context->data_str);
|
||||
if(!stream_read_line(context->uids_stream, context->data_str)) {
|
||||
@@ -236,9 +220,6 @@ void flipfrid_scene_run_attack_on_tick(FlipFridState* context) {
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
context->protocol =
|
||||
protocol_dict_get_protocol_by_name(context->dict, "HIDProx");
|
||||
|
||||
while(true) {
|
||||
string_reset(context->data_str);
|
||||
if(!stream_read_line(context->uids_stream, context->data_str)) {
|
||||
@@ -325,7 +306,7 @@ void flipfrid_scene_run_attack_on_draw(Canvas* canvas, FlipFridState* context) {
|
||||
canvas, 64, 8, AlignCenter, AlignTop, string_get_cstr(context->attack_name));
|
||||
|
||||
char uid[18];
|
||||
if(context->protocol == protocol_dict_get_protocol_by_name(context->dict, "HIDProx")) {
|
||||
if(context->proto == HIDProx) {
|
||||
snprintf(
|
||||
uid,
|
||||
sizeof(uid),
|
||||
|
||||
@@ -79,7 +79,7 @@ void* subghz_protocol_encoder_came_atomo_alloc(SubGhzEnvironment* environment) {
|
||||
instance->generic.protocol_name = instance->base.protocol->name;
|
||||
|
||||
instance->encoder.repeat = 10;
|
||||
instance->encoder.size_upload = 4096; //approx max buffer size
|
||||
instance->encoder.size_upload = 1024; //actual size about 760
|
||||
instance->encoder.upload = malloc(instance->encoder.size_upload * sizeof(LevelDuration));
|
||||
instance->encoder.is_running = false;
|
||||
return instance;
|
||||
@@ -114,7 +114,7 @@ static LevelDuration
|
||||
break;
|
||||
|
||||
default:
|
||||
furi_crash("SubGhz: ManchesterEncoderResult is incorrect.");
|
||||
FURI_LOG_E(TAG, "SubGhz: ManchesterEncoderResult is incorrect.");
|
||||
break;
|
||||
}
|
||||
return level_duration_make(data.level, data.duration);
|
||||
|
||||
@@ -61,7 +61,8 @@ const SubGhzProtocolEncoder subghz_protocol_ido_encoder = {
|
||||
const SubGhzProtocol subghz_protocol_ido = {
|
||||
.name = SUBGHZ_PROTOCOL_IDO_NAME,
|
||||
.type = SubGhzProtocolTypeDynamic,
|
||||
.flag = SubGhzProtocolFlag_433 | SubGhzProtocolFlag_AM | SubGhzProtocolFlag_Decodable,
|
||||
.flag = SubGhzProtocolFlag_433 | SubGhzProtocolFlag_AM | SubGhzProtocolFlag_Decodable |
|
||||
SubGhzProtocolFlag_Save,
|
||||
|
||||
.decoder = &subghz_protocol_ido_decoder,
|
||||
.encoder = &subghz_protocol_ido_encoder,
|
||||
|
||||
@@ -96,7 +96,7 @@ void* subghz_protocol_encoder_nice_flor_s_alloc(SubGhzEnvironment* environment)
|
||||
TAG, "Loading rainbow table from %s", instance->nice_flor_s_rainbow_table_file_name);
|
||||
}
|
||||
instance->encoder.repeat = 10;
|
||||
instance->encoder.size_upload = 2976; //max upload 186*16 = 2976
|
||||
instance->encoder.size_upload = 1800; //wrong!! upload 186*16 = 2976 - actual size about 1716
|
||||
instance->encoder.upload = malloc(instance->encoder.size_upload * sizeof(LevelDuration));
|
||||
instance->encoder.is_running = false;
|
||||
return instance;
|
||||
|
||||
@@ -69,7 +69,8 @@ const SubGhzProtocolEncoder subghz_protocol_scher_khan_encoder = {
|
||||
const SubGhzProtocol subghz_protocol_scher_khan = {
|
||||
.name = SUBGHZ_PROTOCOL_SCHER_KHAN_NAME,
|
||||
.type = SubGhzProtocolTypeDynamic,
|
||||
.flag = SubGhzProtocolFlag_433 | SubGhzProtocolFlag_FM | SubGhzProtocolFlag_Decodable,
|
||||
.flag = SubGhzProtocolFlag_433 | SubGhzProtocolFlag_FM | SubGhzProtocolFlag_Decodable |
|
||||
SubGhzProtocolFlag_Save,
|
||||
|
||||
.decoder = &subghz_protocol_scher_khan_decoder,
|
||||
.encoder = &subghz_protocol_scher_khan_encoder,
|
||||
|
||||
@@ -68,7 +68,7 @@ const SubGhzProtocol subghz_protocol_somfy_keytis = {
|
||||
.name = SUBGHZ_PROTOCOL_SOMFY_KEYTIS_NAME,
|
||||
.type = SubGhzProtocolTypeDynamic,
|
||||
.flag = SubGhzProtocolFlag_433 | SubGhzProtocolFlag_868 | SubGhzProtocolFlag_AM |
|
||||
SubGhzProtocolFlag_Decodable,
|
||||
SubGhzProtocolFlag_Decodable | SubGhzProtocolFlag_Save,
|
||||
|
||||
.decoder = &subghz_protocol_somfy_keytis_decoder,
|
||||
.encoder = &subghz_protocol_somfy_keytis_encoder,
|
||||
|
||||
@@ -67,7 +67,7 @@ const SubGhzProtocol subghz_protocol_somfy_telis = {
|
||||
.name = SUBGHZ_PROTOCOL_SOMFY_TELIS_NAME,
|
||||
.type = SubGhzProtocolTypeDynamic,
|
||||
.flag = SubGhzProtocolFlag_433 | SubGhzProtocolFlag_868 | SubGhzProtocolFlag_AM |
|
||||
SubGhzProtocolFlag_Decodable,
|
||||
SubGhzProtocolFlag_Decodable | SubGhzProtocolFlag_Save,
|
||||
|
||||
.decoder = &subghz_protocol_somfy_telis_decoder,
|
||||
.encoder = &subghz_protocol_somfy_telis_encoder,
|
||||
|
||||
@@ -74,7 +74,7 @@ const SubGhzProtocol subghz_protocol_star_line = {
|
||||
.name = SUBGHZ_PROTOCOL_STAR_LINE_NAME,
|
||||
.type = SubGhzProtocolTypeDynamic,
|
||||
.flag = SubGhzProtocolFlag_433 | SubGhzProtocolFlag_AM | SubGhzProtocolFlag_Decodable |
|
||||
SubGhzProtocolFlag_Load | SubGhzProtocolFlag_Save | SubGhzProtocolFlag_Send,
|
||||
SubGhzProtocolFlag_Load | SubGhzProtocolFlag_Save,
|
||||
|
||||
.decoder = &subghz_protocol_star_line_decoder,
|
||||
.encoder = &subghz_protocol_star_line_encoder,
|
||||
|
||||
Reference in New Issue
Block a user