From 49524575bef7f1074bf19b0a42e27a63123a631c Mon Sep 17 00:00:00 2001 From: Antiklesys Date: Tue, 17 Sep 2024 01:32:44 +0800 Subject: [PATCH] Update legbrute for even threads Updated legbrute to use an even number of threads and display the starting key of every key block. Useful in case the operation needs to be halted and resumed --- client/src/cmdhficlass.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/client/src/cmdhficlass.c b/client/src/cmdhficlass.c index 934b8f24cd..fa43d8debd 100644 --- a/client/src/cmdhficlass.c +++ b/client/src/cmdhficlass.c @@ -3937,7 +3937,7 @@ static int CmdHFiClassLegRecLookUp(const char *Cmd) { arg_str1(NULL, "csn", "", "Specify CSN as 8 hex bytes"), arg_str1(NULL, "epurse", "", "Specify ePurse as 8 hex bytes"), arg_str1(NULL, "macs", "", "MACs"), - arg_str1(NULL, "pk", "", "Partial Key"), + arg_str1(NULL, "pk", "", "Partial Key from legrec or starting key of keyblock from legbrute"), arg_param_end }; CLIExecWithReturn(ctx, Cmd, argtable, false); @@ -4009,7 +4009,7 @@ static int CmdHFiClassLegRecLookUp(const char *Cmd) { PrintAndLogEx(SUCCESS, "Starting Key: %s", sprint_hex(startingKey, 8)); uint32_t keycount = 1000000; - uint32_t keys_per_thread = 200000; + uint32_t keys_per_thread = 250000; uint32_t num_threads = keycount / keys_per_thread; pthread_t threads[num_threads]; ThreadData thread_data[num_threads]; @@ -4057,8 +4057,11 @@ static int CmdHFiClassLegRecLookUp(const char *Cmd) { return PM3_EINVARG; } - PrintAndLogEx(INFO, "Generating diversified keys..."); + PrintAndLogEx(INFO, "Generating diversified keys...Index: " _YELLOW_("%d")" of ~1099511",block_index); for (uint32_t t = 0; t < num_threads; t++) { + if(!t){ + PrintAndLogEx(SUCCESS, "KeyBlock Starting Key: %s", sprint_hex(thread_data[t].keyBlock[0], 8)); + } GenerateMacKeyFrom(csn, CCNR, true, false, (uint8_t *)thread_data[t].keyBlock, keys_per_thread, prekey + (block_index * keycount) + (t * keys_per_thread)); }