Просмотр исходного кода

1.5.2 - Show correct amount of nonces to collect

AloneLiberty 2 лет назад
Родитель
Сommit
eba6163d7e
5 измененных файлов с 14 добавлено и 7 удалено
  1. 1 1
      application.fam
  2. 1 1
      mifare_nested_i.h
  3. 5 2
      mifare_nested_worker.c
  4. 1 0
      mifare_nested_worker.h
  5. 6 3
      scenes/mifare_nested_scene_collecting.c

+ 1 - 1
application.fam

@@ -21,5 +21,5 @@ App(
     fap_author="AloneLiberty",
     fap_description="Recover Mifare Classic keys",
     fap_weburl="https://github.com/AloneLiberty/FlipperNested",
-    fap_version="1.5.1"
+    fap_version="1.5.2"
 )

+ 1 - 1
mifare_nested_i.h

@@ -21,7 +21,7 @@
 #include <gui/modules/variable_item_list.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_RECOVER_KEYS_GITHUB_LINK "https://github.com/AloneLiberty/FlipperNestedRecovery"
 #define NESTED_NONCE_FORMAT_VERSION "3"

+ 5 - 2
mifare_nested_worker.c

@@ -478,11 +478,11 @@ SaveNoncesResult_t* mifare_nested_worker_write_nonces(
         for(uint8_t sector = 0; sector < sector_count; sector++) {
             for(uint8_t key_type = 0; key_type < 2; key_type++) {
                 if(nonces->nonces[sector][key_type][tries]->invalid) {
-                    if (tries == 0) {
+                    if(tries == 0) {
                         result->invalid++;
                     }
                 } else if(nonces->nonces[sector][key_type][tries]->skipped) {
-                    if (tries == 0) {
+                    if(tries == 0) {
                         result->skipped++;
                     }
                 } else if(nonces->nonces[sector][key_type][tries]->collected) {
@@ -578,6 +578,7 @@ bool mifare_nested_worker_check_initial_keys(
                 info->block = mifare_nested_worker_get_block_by_sector(sector);
                 info->collected = false;
                 info->skipped = true;
+                info->from_start = false;
 
                 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];
                 info->collected = true;
                 info->skipped = true;
+                info->from_start = true;
 
                 nonces->nonces[sector][0][tries] = info;
             }
@@ -616,6 +618,7 @@ bool mifare_nested_worker_check_initial_keys(
                 Nonces* info = nonces->nonces[sector][1][tries];
                 info->collected = true;
                 info->skipped = true;
+                info->from_start = true;
 
                 nonces->nonces[sector][1][tries] = info;
             }

+ 1 - 0
mifare_nested_worker.h

@@ -66,6 +66,7 @@ typedef struct {
     uint32_t target_ks[2];
     uint8_t parity[2][4];
     bool skipped;
+    bool from_start;
     bool invalid;
     bool collected;
     bool hardnested;

+ 6 - 3
scenes/mifare_nested_scene_collecting.c

@@ -18,12 +18,15 @@ bool mifare_nested_collecting_worker_callback(MifareNestedWorkerEvent event, voi
         mifare_nested_blink_nonce_collection_start(mifare_nested);
 
         uint8_t collected = 0;
+        uint8_t skip = 0;
         NonceList_t* nonces = mifare_nested->nonces;
         for(uint8_t tries = 0; tries < nonces->tries; tries++) {
             for(uint8_t sector = 0; sector < nonces->sector_count; sector++) {
                 for(uint8_t keyType = 0; keyType < 2; keyType++) {
                     Nonces* info = nonces->nonces[sector][keyType][tries];
-                    if(info->collected) {
+                    if(info->from_start) {
+                        skip++;
+                    } else if(info->collected) {
                         collected++;
                     }
                 }
@@ -37,7 +40,7 @@ bool mifare_nested_collecting_worker_callback(MifareNestedWorkerEvent event, voi
                 model->calibrating = false;
                 model->lost_tag = false;
                 model->nonces_collected = collected;
-                model->keys_count = nonces->sector_count * nonces->tries * 2;
+                model->keys_count = (nonces->sector_count * nonces->tries * 2) - skip;
             },
             true);
     } else if(event == MifareNestedWorkerEventNoTagDetected) {
@@ -155,4 +158,4 @@ void mifare_nested_scene_collecting_on_exit(void* context) {
     mifare_nested_blink_stop(mifare_nested);
     popup_reset(mifare_nested->popup);
     widget_reset(mifare_nested->widget);
-}
+}