Compare commits

..

2 Commits

Author SHA1 Message Date
d4rks1d33
0f24f8c105 Added warning on counter bruteforce 2026-03-16 19:45:54 -03:00
Andrea Santaniello
238f39d0d8 Fixes 2026-03-16 23:39:22 +01:00
3 changed files with 15 additions and 39 deletions

View File

@@ -37,13 +37,14 @@ static void counter_bf_draw(SubGhz* subghz, CounterBfContext* ctx) {
FuriString* str = furi_string_alloc();
furi_string_printf(
str,
"WARNING: THIS MAY BE DESYNC YOUR FOB\n"
"Counter BruteForce\n"
"Cnt: 0x%08lX\n"
"Sent: %lu pkts\n"
"Start: 0x%08lX",
"Start: 0x%08lX\n"
"Sent: %lu",
ctx->current_cnt,
ctx->packets_sent,
ctx->start_cnt);
ctx->start_cnt,
ctx->packets_sent);
widget_add_string_multiline_element(
subghz->widget, 0, 0, AlignLeft, AlignTop, FontSecondary, furi_string_get_cstr(str));
furi_string_free(str);

View File

@@ -200,16 +200,17 @@ bool subghz_scene_keeloq_decrypt_on_event(void* context, SceneManagerEvent event
subghz_txrx_get_fff_data(subghz->txrx),
furi_string_get_cstr(subghz->file_path));
if(subghz->keeloq_keys_manager) {
char key_name[24];
snprintf(key_name, sizeof(key_name), "BF_%07lX", ctx->serial);
subghz_keeloq_keys_add(
subghz->keeloq_keys_manager,
ctx->recovered_mfkey,
ctx->recovered_type,
key_name);
subghz_keeloq_keys_save(subghz->keeloq_keys_manager);
if(!subghz->keeloq_keys_manager) {
subghz->keeloq_keys_manager = subghz_keeloq_keys_alloc();
}
char key_name[24];
snprintf(key_name, sizeof(key_name), "BF_%07lX", ctx->serial);
subghz_keeloq_keys_add(
subghz->keeloq_keys_manager,
ctx->recovered_mfkey,
ctx->recovered_type,
key_name);
subghz_keeloq_keys_save(subghz->keeloq_keys_manager);
subghz_view_keeloq_decrypt_set_result(
subghz->subghz_keeloq_decrypt, true, furi_string_get_cstr(ctx->result));

View File

@@ -6,7 +6,6 @@ enum SubmenuIndex {
SubmenuIndexDelete,
SubmenuIndexSignalSettings,
SubmenuIndexPsaDecrypt,
SubmenuIndexKeeloqDecrypt,
SubmenuIndexCounterBf
};
@@ -20,7 +19,6 @@ void subghz_scene_saved_menu_on_enter(void* context) {
FlipperFormat* fff = subghz_txrx_get_fff_data(subghz->txrx);
bool is_psa_encrypted = false;
bool is_keeloq_unknown = false;
bool has_counter = false;
if(fff) {
FuriString* proto = furi_string_alloc();
@@ -34,17 +32,6 @@ void subghz_scene_saved_menu_on_enter(void* context) {
is_psa_encrypted = true;
}
furi_string_free(type_str);
} else if(furi_string_equal_str(proto, "KeeLoq")) {
FuriString* mf_str = furi_string_alloc();
flipper_format_rewind(fff);
if(flipper_format_read_string(fff, "Manufacture", mf_str)) {
if(furi_string_equal_str(mf_str, "Unknown")) {
is_keeloq_unknown = true;
}
} else {
is_keeloq_unknown = true;
}
furi_string_free(mf_str);
}
}
furi_string_free(proto);
@@ -95,14 +82,6 @@ void subghz_scene_saved_menu_on_enter(void* context) {
subghz_scene_saved_menu_submenu_callback,
subghz);
}
if(is_keeloq_unknown) {
submenu_add_item(
subghz->submenu,
"KeeLoq BF (Phone)",
SubmenuIndexKeeloqDecrypt,
subghz_scene_saved_menu_submenu_callback,
subghz);
}
if(has_counter) {
submenu_add_item(
subghz->submenu,
@@ -148,11 +127,6 @@ bool subghz_scene_saved_menu_on_event(void* context, SceneManagerEvent event) {
subghz->scene_manager, SubGhzSceneSavedMenu, SubmenuIndexPsaDecrypt);
scene_manager_next_scene(subghz->scene_manager, SubGhzScenePsaDecrypt);
return true;
} else if(event.event == SubmenuIndexKeeloqDecrypt) {
scene_manager_set_scene_state(
subghz->scene_manager, SubGhzSceneSavedMenu, SubmenuIndexKeeloqDecrypt);
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneKeeloqDecrypt);
return true;
} else if(event.event == SubmenuIndexCounterBf) {
scene_manager_set_scene_state(
subghz->scene_manager, SubGhzSceneSavedMenu, SubmenuIndexCounterBf);