mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2024-12-23 21:34:35 +03:00
No nested dictionary attack re-entry
This commit is contained in:
parent
4eb0f2a21b
commit
6ae950673e
@ -219,7 +219,9 @@ bool nfc_scene_mf_classic_dict_attack_on_event(void* context, SceneManagerEvent
|
|||||||
scene_manager_get_scene_state(instance->scene_manager, NfcSceneMfClassicDictAttack);
|
scene_manager_get_scene_state(instance->scene_manager, NfcSceneMfClassicDictAttack);
|
||||||
if(event.type == SceneManagerEventTypeCustom) {
|
if(event.type == SceneManagerEventTypeCustom) {
|
||||||
if(event.event == NfcCustomEventDictAttackComplete) {
|
if(event.event == NfcCustomEventDictAttackComplete) {
|
||||||
if(state == DictAttackStateUserDictInProgress) {
|
bool ran_nested_dict = instance->nfc_dict_context.nested_phase !=
|
||||||
|
MfClassicNestedPhaseNone;
|
||||||
|
if(state == DictAttackStateUserDictInProgress && !(ran_nested_dict)) {
|
||||||
nfc_poller_stop(instance->poller);
|
nfc_poller_stop(instance->poller);
|
||||||
nfc_poller_free(instance->poller);
|
nfc_poller_free(instance->poller);
|
||||||
keys_dict_free(instance->nfc_dict_context.dict);
|
keys_dict_free(instance->nfc_dict_context.dict);
|
||||||
@ -248,7 +250,9 @@ bool nfc_scene_mf_classic_dict_attack_on_event(void* context, SceneManagerEvent
|
|||||||
} else if(event.event == NfcCustomEventDictAttackSkip) {
|
} else if(event.event == NfcCustomEventDictAttackSkip) {
|
||||||
const MfClassicData* mfc_data = nfc_poller_get_data(instance->poller);
|
const MfClassicData* mfc_data = nfc_poller_get_data(instance->poller);
|
||||||
nfc_device_set_data(instance->nfc_device, NfcProtocolMfClassic, mfc_data);
|
nfc_device_set_data(instance->nfc_device, NfcProtocolMfClassic, mfc_data);
|
||||||
if(state == DictAttackStateUserDictInProgress) {
|
bool ran_nested_dict = instance->nfc_dict_context.nested_phase !=
|
||||||
|
MfClassicNestedPhaseNone;
|
||||||
|
if(state == DictAttackStateUserDictInProgress && !(ran_nested_dict)) {
|
||||||
if(instance->nfc_dict_context.is_card_present) {
|
if(instance->nfc_dict_context.is_card_present) {
|
||||||
nfc_poller_stop(instance->poller);
|
nfc_poller_stop(instance->poller);
|
||||||
nfc_poller_free(instance->poller);
|
nfc_poller_free(instance->poller);
|
||||||
@ -266,7 +270,7 @@ bool nfc_scene_mf_classic_dict_attack_on_event(void* context, SceneManagerEvent
|
|||||||
dolphin_deed(DolphinDeedNfcReadSuccess);
|
dolphin_deed(DolphinDeedNfcReadSuccess);
|
||||||
}
|
}
|
||||||
consumed = true;
|
consumed = true;
|
||||||
} else if(state == DictAttackStateSystemDictInProgress) {
|
} else {
|
||||||
nfc_scene_mf_classic_dict_attack_notify_read(instance);
|
nfc_scene_mf_classic_dict_attack_notify_read(instance);
|
||||||
scene_manager_next_scene(instance->scene_manager, NfcSceneReadSuccess);
|
scene_manager_next_scene(instance->scene_manager, NfcSceneReadSuccess);
|
||||||
dolphin_deed(DolphinDeedNfcReadSuccess);
|
dolphin_deed(DolphinDeedNfcReadSuccess);
|
||||||
|
Loading…
Reference in New Issue
Block a user