mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 20:49:49 +04:00
RFID and iButton fuzzer fixes
Attempt to fix crash when exiting from uids from file attack
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
* Plugins: Weather Station -> Improved signal info dashboard, added signal age counter. (PR by @LY2NEO | #197) (Modified and improved by @xMasterX, new icons and UI changes recommendations by @Karator in OFW PR 2087)
|
* Plugins: Weather Station -> Improved signal info dashboard, added signal age counter. (PR by @LY2NEO | #197) (Modified and improved by @xMasterX, new icons and UI changes recommendations by @Karator in OFW PR 2087)
|
||||||
* Plugins: Weather Station -> Oregon2 - add support for RTHN129
|
* Plugins: Weather Station -> Oregon2 - add support for RTHN129
|
||||||
* Plugins: iButton Fuzzer -> change minimal delay (after @Tobirg successfully verified stability with lower delay)
|
* Plugins: iButton Fuzzer -> change minimal delay (after @Tobirg successfully verified stability with lower delay)
|
||||||
|
* Plugins: iButton Fuzzer + RFID Fuzzer -> Attempt to fix crash when exiting from uids from file attack
|
||||||
* OFW: NFC bug fixes **(breaking change, affects API version)**
|
* OFW: NFC bug fixes **(breaking change, affects API version)**
|
||||||
* OFW: UART echo: fix race conditions causing null pointer dereference
|
* OFW: UART echo: fix race conditions causing null pointer dereference
|
||||||
* OFW: File browser base folder **(breaking change, affects API version)**
|
* OFW: File browser base folder **(breaking change, affects API version)**
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ typedef struct {
|
|||||||
ProtocolDict* dict;
|
ProtocolDict* dict;
|
||||||
ProtocolId protocol;
|
ProtocolId protocol;
|
||||||
bool workr_rund;
|
bool workr_rund;
|
||||||
|
bool attack_stop_called;
|
||||||
|
|
||||||
uint8_t time_between_cards;
|
uint8_t time_between_cards;
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ void flipfrid_scene_entrypoint_on_enter(FlipFridState* context) {
|
|||||||
main_menu_items[0] = furi_string_alloc_set("Default Values");
|
main_menu_items[0] = furi_string_alloc_set("Default Values");
|
||||||
main_menu_items[1] = furi_string_alloc_set("BF Customer ID");
|
main_menu_items[1] = furi_string_alloc_set("BF Customer ID");
|
||||||
main_menu_items[2] = furi_string_alloc_set("Load File");
|
main_menu_items[2] = furi_string_alloc_set("Load File");
|
||||||
main_menu_items[3] = furi_string_alloc_set("Load uids from file");
|
main_menu_items[3] = furi_string_alloc_set("Load UIDs from file");
|
||||||
|
|
||||||
context->menu_proto_index = 0;
|
context->menu_proto_index = 0;
|
||||||
/*for(uint32_t i = 0; i < 4; i++) {
|
/*for(uint32_t i = 0; i < 4; i++) {
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ uint8_t id_list_h[14][3] = {
|
|||||||
void flipfrid_scene_run_attack_on_enter(FlipFridState* context) {
|
void flipfrid_scene_run_attack_on_enter(FlipFridState* context) {
|
||||||
context->time_between_cards = 10;
|
context->time_between_cards = 10;
|
||||||
context->attack_step = 0;
|
context->attack_step = 0;
|
||||||
|
context->attack_stop_called = false;
|
||||||
context->dict = protocol_dict_alloc(lfrfid_protocols, LFRFIDProtocolMax);
|
context->dict = protocol_dict_alloc(lfrfid_protocols, LFRFIDProtocolMax);
|
||||||
context->worker = lfrfid_worker_alloc(context->dict);
|
context->worker = lfrfid_worker_alloc(context->dict);
|
||||||
if(context->proto == HIDProx) {
|
if(context->proto == HIDProx) {
|
||||||
@@ -497,7 +498,6 @@ void flipfrid_scene_run_attack_on_tick(FlipFridState* context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(counter > context->time_between_cards) {
|
if(counter > context->time_between_cards) {
|
||||||
counter = 0;
|
counter = 0;
|
||||||
} else {
|
} else {
|
||||||
@@ -541,9 +541,12 @@ void flipfrid_scene_run_attack_on_event(FlipFridEvent event, FlipFridState* cont
|
|||||||
break;
|
break;
|
||||||
case InputKeyBack:
|
case InputKeyBack:
|
||||||
context->is_attacking = false;
|
context->is_attacking = false;
|
||||||
context->attack_step = 0;
|
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
|
||||||
|
notification_message(context->notify, &sequence_blink_stop);
|
||||||
|
if(context->attack_stop_called) {
|
||||||
|
context->attack_stop_called = false;
|
||||||
|
context->attack_step = 0;
|
||||||
if(context->attack == FlipFridAttackLoadFileCustomUids) {
|
if(context->attack == FlipFridAttackLoadFileCustomUids) {
|
||||||
furi_string_reset(context->data_str);
|
furi_string_reset(context->data_str);
|
||||||
stream_rewind(context->uids_stream);
|
stream_rewind(context->uids_stream);
|
||||||
@@ -551,8 +554,10 @@ void flipfrid_scene_run_attack_on_event(FlipFridEvent event, FlipFridState* cont
|
|||||||
}
|
}
|
||||||
|
|
||||||
furi_string_reset(context->notification_msg);
|
furi_string_reset(context->notification_msg);
|
||||||
notification_message(context->notify, &sequence_blink_stop);
|
|
||||||
context->current_scene = SceneEntryPoint;
|
context->current_scene = SceneEntryPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
context->attack_stop_called = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ typedef struct {
|
|||||||
iButtonKeyType keytype;
|
iButtonKeyType keytype;
|
||||||
bool workr_rund;
|
bool workr_rund;
|
||||||
bool enter_rerun;
|
bool enter_rerun;
|
||||||
|
bool attack_stop_called;
|
||||||
|
|
||||||
uint8_t time_between_cards;
|
uint8_t time_between_cards;
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ void ibtnfuzzer_scene_entrypoint_on_enter(iBtnFuzzerState* context) {
|
|||||||
|
|
||||||
main_menu_items[0] = furi_string_alloc_set("Default Values");
|
main_menu_items[0] = furi_string_alloc_set("Default Values");
|
||||||
main_menu_items[1] = furi_string_alloc_set("Load File");
|
main_menu_items[1] = furi_string_alloc_set("Load File");
|
||||||
main_menu_items[2] = furi_string_alloc_set("Load uids from file");
|
main_menu_items[2] = furi_string_alloc_set("Load UIDs from file");
|
||||||
|
|
||||||
context->menu_proto_index = 0;
|
context->menu_proto_index = 0;
|
||||||
/*for(uint32_t i = 0; i < 4; i++) {
|
/*for(uint32_t i = 0; i < 4; i++) {
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ uint8_t id_list_cyfral[14][2] = {
|
|||||||
void ibtnfuzzer_scene_run_attack_on_enter(iBtnFuzzerState* context) {
|
void ibtnfuzzer_scene_run_attack_on_enter(iBtnFuzzerState* context) {
|
||||||
context->time_between_cards = 8;
|
context->time_between_cards = 8;
|
||||||
context->attack_step = 0;
|
context->attack_step = 0;
|
||||||
|
context->attack_stop_called = false;
|
||||||
context->key = ibutton_key_alloc();
|
context->key = ibutton_key_alloc();
|
||||||
context->worker = ibutton_worker_alloc();
|
context->worker = ibutton_worker_alloc();
|
||||||
if(context->proto == Metakom) {
|
if(context->proto == Metakom) {
|
||||||
@@ -387,9 +388,12 @@ void ibtnfuzzer_scene_run_attack_on_event(iBtnFuzzerEvent event, iBtnFuzzerState
|
|||||||
break;
|
break;
|
||||||
case InputKeyBack:
|
case InputKeyBack:
|
||||||
context->is_attacking = false;
|
context->is_attacking = false;
|
||||||
context->attack_step = 0;
|
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
|
||||||
|
notification_message(context->notify, &sequence_blink_stop);
|
||||||
|
if(context->attack_stop_called) {
|
||||||
|
context->attack_stop_called = false;
|
||||||
|
context->attack_step = 0;
|
||||||
if(context->attack == iBtnFuzzerAttackLoadFileCustomUids) {
|
if(context->attack == iBtnFuzzerAttackLoadFileCustomUids) {
|
||||||
furi_string_reset(context->data_str);
|
furi_string_reset(context->data_str);
|
||||||
stream_rewind(context->uids_stream);
|
stream_rewind(context->uids_stream);
|
||||||
@@ -397,8 +401,10 @@ void ibtnfuzzer_scene_run_attack_on_event(iBtnFuzzerEvent event, iBtnFuzzerState
|
|||||||
}
|
}
|
||||||
|
|
||||||
furi_string_reset(context->notification_msg);
|
furi_string_reset(context->notification_msg);
|
||||||
notification_message(context->notify, &sequence_blink_stop);
|
|
||||||
context->current_scene = SceneEntryPoint;
|
context->current_scene = SceneEntryPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
context->attack_stop_called = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user