hf mf sim: Multiple fixes (iceman1001/proxmark3 #45)
- Fix `hf mf sim` to use nonce_t structures, so key recovery works - Increases verbosity on the key recovery functionality - Fix use-after-free for k_sector - Add help info on `e` option to `hf mf sim`
This commit is contained in:
@@ -170,7 +170,18 @@ bool tryMfk32(nonces_t data, uint64_t *outputkey) {
|
||||
bool isSuccess = FALSE;
|
||||
uint8_t counter = 0;
|
||||
|
||||
printf("Recovering key for:\n");
|
||||
printf(" uid: %08x\n",uid);
|
||||
printf(" nt: %08x\n",nt);
|
||||
printf(" {nr_0}: %08x\n",nr0_enc);
|
||||
printf(" {ar_0}: %08x\n",ar0_enc);
|
||||
printf(" {nr_1}: %08x\n",nr1_enc);
|
||||
printf(" {ar_1}: %08x\n",ar1_enc);
|
||||
|
||||
printf("\nLFSR succesors of the tag challenge:\n");
|
||||
uint32_t p64 = prng_successor(nt, 64);
|
||||
printf(" nt': %08x\n", p64);
|
||||
printf(" nt'': %08x\n", prng_successor(p64, 32));
|
||||
|
||||
s = lfsr_recovery32(ar0_enc ^ p64, 0);
|
||||
|
||||
@@ -212,12 +223,25 @@ bool tryMfk32_moebius(nonces_t data, uint64_t *outputkey) {
|
||||
bool isSuccess = FALSE;
|
||||
int counter = 0;
|
||||
|
||||
printf("Recovering key for:\n");
|
||||
printf(" uid: %08x\n",uid);
|
||||
printf(" nt_0: %08x\n",nt0);
|
||||
printf(" {nr_0}: %08x\n",nr0_enc);
|
||||
printf(" {ar_0}: %08x\n",ar0_enc);
|
||||
printf(" nt_1: %08x\n",nt1);
|
||||
printf(" {nr_1}: %08x\n",nr1_enc);
|
||||
printf(" {ar_1}: %08x\n",ar1_enc);
|
||||
|
||||
//PrintAndLog("Enter mfkey32_moebius");
|
||||
clock_t t1 = clock();
|
||||
|
||||
printf("\nLFSR succesors of the tag challenge:\n");
|
||||
uint32_t p640 = prng_successor(nt0, 64);
|
||||
uint32_t p641 = prng_successor(nt1, 64);
|
||||
|
||||
printf(" nt': %08x\n", p640);
|
||||
printf(" nt'': %08x\n", prng_successor(p640, 32));
|
||||
|
||||
s = lfsr_recovery32(ar0_enc ^ p640, 0);
|
||||
|
||||
for(t = s; t->odd | t->even; ++t) {
|
||||
|
||||
Reference in New Issue
Block a user