From 02af12723c149e799a7f3b326ddb6c73f994e0f7 Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Fri, 2 Aug 2024 23:21:14 +0200 Subject: [PATCH] hf mf isen: forgot some checks --- client/src/cmdhfmf.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/client/src/cmdhfmf.c b/client/src/cmdhfmf.c index cb50c4960..9e6df4bcb 100644 --- a/client/src/cmdhfmf.c +++ b/client/src/cmdhfmf.c @@ -9657,13 +9657,18 @@ static int CmdHF14AMfISEN(const char *Cmd) { uint8_t keytype = MF_KEY_A; if (arg_get_lit(ctx, 2) && arg_get_lit(ctx, 3)) { CLIParserFree(ctx); - PrintAndLogEx(WARNING, "Input key type must be A or B"); + PrintAndLogEx(WARNING, "Choose one single input key type"); return PM3_EINVARG; } else if (arg_get_lit(ctx, 3)) { keytype = MF_KEY_B; } - // Should warn if conflict with -a/-b and -c but well... + uint8_t prev_keytype = keytype; keytype = arg_get_int_def(ctx, 4, keytype); + if ((arg_get_lit(ctx, 2) || arg_get_lit(ctx, 3)) && (keytype != prev_keytype)) { + CLIParserFree(ctx); + PrintAndLogEx(WARNING, "Choose one single input key type"); + return PM3_EINVARG; + } int keylen = 0; uint8_t key[MIFARE_KEY_SIZE] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; @@ -9674,15 +9679,20 @@ static int CmdHF14AMfISEN(const char *Cmd) { uint8_t keytype_nested = keytype; if (arg_get_lit(ctx, 7) && arg_get_lit(ctx, 8)) { CLIParserFree(ctx); - PrintAndLogEx(WARNING, "Input key type must be A or B"); + PrintAndLogEx(WARNING, "Choose one single nested input key type"); return PM3_EINVARG; } else if (arg_get_lit(ctx, 7)) { keytype_nested = MF_KEY_A; } else if (arg_get_lit(ctx, 8)) { keytype_nested = MF_KEY_B; } - // Should warn if conflict with -a/-b and -c but well... + uint8_t prev_keytype_nested = keytype_nested; keytype_nested = arg_get_int_def(ctx, 9, keytype_nested); + if ((arg_get_lit(ctx, 7) || arg_get_lit(ctx, 8)) && (keytype_nested != prev_keytype_nested)) { + CLIParserFree(ctx); + PrintAndLogEx(WARNING, "Choose one single nested input key type"); + return PM3_EINVARG; + } int keylen_nested = 0; uint8_t key_nested[MIFARE_KEY_SIZE];