mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-14 23:58:36 -07:00
Update mifare nested
This commit is contained in:
@@ -21,5 +21,5 @@ App(
|
|||||||
fap_author="AloneLiberty",
|
fap_author="AloneLiberty",
|
||||||
fap_description="Recover Mifare Classic keys",
|
fap_description="Recover Mifare Classic keys",
|
||||||
fap_weburl="https://github.com/AloneLiberty/FlipperNested",
|
fap_weburl="https://github.com/AloneLiberty/FlipperNested",
|
||||||
fap_version="1.5.1"
|
fap_version="1.5.2"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
#include <gui/modules/variable_item_list.h>
|
#include <gui/modules/variable_item_list.h>
|
||||||
#include "mifare_nested_icons.h"
|
#include "mifare_nested_icons.h"
|
||||||
|
|
||||||
#define NESTED_VERSION_APP "1.5.1"
|
#define NESTED_VERSION_APP "1.5.2"
|
||||||
#define NESTED_GITHUB_LINK "https://github.com/AloneLiberty/FlipperNested"
|
#define NESTED_GITHUB_LINK "https://github.com/AloneLiberty/FlipperNested"
|
||||||
#define NESTED_RECOVER_KEYS_GITHUB_LINK "https://github.com/AloneLiberty/FlipperNestedRecovery"
|
#define NESTED_RECOVER_KEYS_GITHUB_LINK "https://github.com/AloneLiberty/FlipperNestedRecovery"
|
||||||
#define NESTED_NONCE_FORMAT_VERSION "3"
|
#define NESTED_NONCE_FORMAT_VERSION "3"
|
||||||
|
|||||||
@@ -578,6 +578,7 @@ bool mifare_nested_worker_check_initial_keys(
|
|||||||
info->block = mifare_nested_worker_get_block_by_sector(sector);
|
info->block = mifare_nested_worker_get_block_by_sector(sector);
|
||||||
info->collected = false;
|
info->collected = false;
|
||||||
info->skipped = true;
|
info->skipped = true;
|
||||||
|
info->from_start = false;
|
||||||
|
|
||||||
nonces->nonces[sector][key_type][tries] = info;
|
nonces->nonces[sector][key_type][tries] = info;
|
||||||
}
|
}
|
||||||
@@ -595,6 +596,7 @@ bool mifare_nested_worker_check_initial_keys(
|
|||||||
Nonces* info = nonces->nonces[sector][0][tries];
|
Nonces* info = nonces->nonces[sector][0][tries];
|
||||||
info->collected = true;
|
info->collected = true;
|
||||||
info->skipped = true;
|
info->skipped = true;
|
||||||
|
info->from_start = true;
|
||||||
|
|
||||||
nonces->nonces[sector][0][tries] = info;
|
nonces->nonces[sector][0][tries] = info;
|
||||||
}
|
}
|
||||||
@@ -616,6 +618,7 @@ bool mifare_nested_worker_check_initial_keys(
|
|||||||
Nonces* info = nonces->nonces[sector][1][tries];
|
Nonces* info = nonces->nonces[sector][1][tries];
|
||||||
info->collected = true;
|
info->collected = true;
|
||||||
info->skipped = true;
|
info->skipped = true;
|
||||||
|
info->from_start = true;
|
||||||
|
|
||||||
nonces->nonces[sector][1][tries] = info;
|
nonces->nonces[sector][1][tries] = info;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ typedef struct {
|
|||||||
uint32_t target_ks[2];
|
uint32_t target_ks[2];
|
||||||
uint8_t parity[2][4];
|
uint8_t parity[2][4];
|
||||||
bool skipped;
|
bool skipped;
|
||||||
|
bool from_start;
|
||||||
bool invalid;
|
bool invalid;
|
||||||
bool collected;
|
bool collected;
|
||||||
bool hardnested;
|
bool hardnested;
|
||||||
|
|||||||
@@ -18,12 +18,15 @@ bool mifare_nested_collecting_worker_callback(MifareNestedWorkerEvent event, voi
|
|||||||
mifare_nested_blink_nonce_collection_start(mifare_nested);
|
mifare_nested_blink_nonce_collection_start(mifare_nested);
|
||||||
|
|
||||||
uint8_t collected = 0;
|
uint8_t collected = 0;
|
||||||
|
uint8_t skip = 0;
|
||||||
NonceList_t* nonces = mifare_nested->nonces;
|
NonceList_t* nonces = mifare_nested->nonces;
|
||||||
for(uint8_t tries = 0; tries < nonces->tries; tries++) {
|
for(uint8_t tries = 0; tries < nonces->tries; tries++) {
|
||||||
for(uint8_t sector = 0; sector < nonces->sector_count; sector++) {
|
for(uint8_t sector = 0; sector < nonces->sector_count; sector++) {
|
||||||
for(uint8_t keyType = 0; keyType < 2; keyType++) {
|
for(uint8_t keyType = 0; keyType < 2; keyType++) {
|
||||||
Nonces* info = nonces->nonces[sector][keyType][tries];
|
Nonces* info = nonces->nonces[sector][keyType][tries];
|
||||||
if(info->collected) {
|
if(info->from_start) {
|
||||||
|
skip++;
|
||||||
|
} else if(info->collected) {
|
||||||
collected++;
|
collected++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -37,7 +40,7 @@ bool mifare_nested_collecting_worker_callback(MifareNestedWorkerEvent event, voi
|
|||||||
model->calibrating = false;
|
model->calibrating = false;
|
||||||
model->lost_tag = false;
|
model->lost_tag = false;
|
||||||
model->nonces_collected = collected;
|
model->nonces_collected = collected;
|
||||||
model->keys_count = nonces->sector_count * nonces->tries * 2;
|
model->keys_count = (nonces->sector_count * nonces->tries * 2) - skip;
|
||||||
},
|
},
|
||||||
true);
|
true);
|
||||||
} else if(event == MifareNestedWorkerEventNoTagDetected) {
|
} else if(event == MifareNestedWorkerEventNoTagDetected) {
|
||||||
@@ -155,4 +158,4 @@ void mifare_nested_scene_collecting_on_exit(void* context) {
|
|||||||
mifare_nested_blink_stop(mifare_nested);
|
mifare_nested_blink_stop(mifare_nested);
|
||||||
popup_reset(mifare_nested->popup);
|
popup_reset(mifare_nested->popup);
|
||||||
widget_reset(mifare_nested->widget);
|
widget_reset(mifare_nested->widget);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user