@@ -6171,7 +6171,8 @@ static int CmdHF14AMfMAD(const char *Cmd) {
61716171 arg_lit0 ("b" , "keyb" , "use key B for access printing sectors (by default: key A)" ),
61726172 arg_lit0 (NULL , "be" , "(optional, BigEndian)" ),
61736173 arg_lit0 (NULL , "dch" , "decode Card Holder information" ),
6174- arg_str0 ("f" , "file" , "<fn>" , "load dump file and decode MAD" ),
6174+ arg_str0 ("f" , "file" , "<fn>" , "load dump file and decode MAD" ),
6175+ arg_lit0 (NULL , "force" , "force decode (skip key check)" ),
61756176 arg_param_end
61766177 };
61776178 CLIExecWithReturn (ctx , Cmd , argtable , true);
@@ -6185,6 +6186,7 @@ static int CmdHF14AMfMAD(const char *Cmd) {
61856186 bool keyB = arg_get_lit (ctx , 4 );
61866187 bool swapmad = arg_get_lit (ctx , 5 );
61876188 bool decodeholder = arg_get_lit (ctx , 6 );
6189+ bool force = arg_get_lit (ctx , 8 );
61886190
61896191 int fnlen = 0 ;
61906192 char filename [FILE_PATH_SIZE ] = {0 };
@@ -6214,7 +6216,7 @@ static int CmdHF14AMfMAD(const char *Cmd) {
62146216 }
62156217
62166218 // MAD detection
6217- if (HasMADKey (dump ) == false) {
6219+ if (( HasMADKey (dump ) == false) && ( force == false) ) {
62186220 PrintAndLogEx (FAILED , "No MAD key was detected in the dump file" );
62196221 free (dump );
62206222 return PM3_ESOFT ;
0 commit comments