Merge branch 'UNLEASHED' into 420

This commit is contained in:
RogueMaster
2022-09-21 01:53:31 -04:00
10 changed files with 24 additions and 42 deletions
+5 -6
View File
@@ -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**
+3 -3
View File
@@ -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),
+2 -2
View File
@@ -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);
+2 -1
View File
@@ -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,
+1 -1
View File
@@ -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;
+2 -1
View File
@@ -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,
+1 -1
View File
@@ -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,
+1 -1
View File
@@ -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,
+1 -1
View File
@@ -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,