mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-09-22 08:16:16 +08:00
textual
This commit is contained in:
parent
9db343b1c4
commit
25c45ef659
|
@ -2163,7 +2163,7 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mfCheckKeys(FirstBlockOfSector(blockNo), keyType, true, 1, key, &key64) == PM3_SUCCESS) {
|
if (mfCheckKeys(FirstBlockOfSector(blockNo), keyType, true, 1, key, &key64) == PM3_SUCCESS) {
|
||||||
PrintAndLogEx(INFO, "target sector:%3u key type: %c -- using valid key [ " _YELLOW_("%s") "] (used for nested / hardnested attack)",
|
PrintAndLogEx(INFO, "target sector:%3u key type: %c -- using valid key [ " _GREEN_("%s") "] (used for nested / hardnested attack)",
|
||||||
blockNo,
|
blockNo,
|
||||||
keyType ? 'B' : 'A',
|
keyType ? 'B' : 'A',
|
||||||
sprint_hex(key, sizeof(key))
|
sprint_hex(key, sizeof(key))
|
||||||
|
@ -2198,13 +2198,13 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) {
|
||||||
know_target_key = true;
|
know_target_key = true;
|
||||||
blockNo = i;
|
blockNo = i;
|
||||||
keyType = j;
|
keyType = j;
|
||||||
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key ["_YELLOW_("%s") "] (used for nested / hardnested attack)",
|
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _GREEN_("%s") "] (used for nested / hardnested attack)",
|
||||||
i,
|
i,
|
||||||
j ? 'B' : 'A',
|
j ? 'B' : 'A',
|
||||||
sprint_hex(key, sizeof(key))
|
sprint_hex(key, sizeof(key))
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key ["_YELLOW_("%s") "]",
|
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _GREEN_("%s") "]",
|
||||||
i,
|
i,
|
||||||
j ? 'B' : 'A',
|
j ? 'B' : 'A',
|
||||||
sprint_hex(key, sizeof(key))
|
sprint_hex(key, sizeof(key))
|
||||||
|
@ -2216,10 +2216,6 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (verbose) {
|
|
||||||
PrintAndLogEx(INFO, "======================= " _YELLOW_("STOP KNOWN KEY ATTACK") " =======================");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (num_found_keys == sectors_cnt * 2) {
|
if (num_found_keys == sectors_cnt * 2) {
|
||||||
goto all_found;
|
goto all_found;
|
||||||
}
|
}
|
||||||
|
@ -2310,8 +2306,6 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) {
|
||||||
lastChunk = false;
|
lastChunk = false;
|
||||||
} // end strategy
|
} // end strategy
|
||||||
}
|
}
|
||||||
if (verbose) PrintAndLogEx(INFO, "======================= " _YELLOW_("STOP DICTIONARY ATTACK") " =======================");
|
|
||||||
|
|
||||||
|
|
||||||
// Analyse the dictionary attack
|
// Analyse the dictionary attack
|
||||||
for (int i = 0; i < sectors_cnt; i++) {
|
for (int i = 0; i < sectors_cnt; i++) {
|
||||||
|
@ -2326,13 +2320,13 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) {
|
||||||
know_target_key = true;
|
know_target_key = true;
|
||||||
blockNo = i;
|
blockNo = i;
|
||||||
keyType = j;
|
keyType = j;
|
||||||
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _YELLOW_("%s") "] (used for nested / hardnested attack)",
|
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _GREEN_("%s") "] (used for nested / hardnested attack)",
|
||||||
i,
|
i,
|
||||||
j ? 'B' : 'A',
|
j ? 'B' : 'A',
|
||||||
sprint_hex(tmp_key, sizeof(tmp_key))
|
sprint_hex(tmp_key, sizeof(tmp_key))
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _YELLOW_("%s") "]",
|
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _GREEN_("%s") "]",
|
||||||
i,
|
i,
|
||||||
j ? 'B' : 'A',
|
j ? 'B' : 'A',
|
||||||
sprint_hex(tmp_key, sizeof(tmp_key))
|
sprint_hex(tmp_key, sizeof(tmp_key))
|
||||||
|
@ -2352,10 +2346,6 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) {
|
||||||
|
|
||||||
isOK = mfDarkside(FirstBlockOfSector(blockNo), keyType, &key64);
|
isOK = mfDarkside(FirstBlockOfSector(blockNo), keyType, &key64);
|
||||||
|
|
||||||
if (verbose) {
|
|
||||||
PrintAndLogEx(INFO, "======================= " _YELLOW_("STOP DARKSIDE ATTACK") " =======================");
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (isOK) {
|
switch (isOK) {
|
||||||
case -1 :
|
case -1 :
|
||||||
PrintAndLogEx(WARNING, "\nButton pressed. Aborted.");
|
PrintAndLogEx(WARNING, "\nButton pressed. Aborted.");
|
||||||
|
@ -2381,7 +2371,7 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) {
|
||||||
// Store the keys
|
// Store the keys
|
||||||
e_sector[blockNo].Key[keyType] = key64;
|
e_sector[blockNo].Key[keyType] = key64;
|
||||||
e_sector[blockNo].foundKey[keyType] = 'S';
|
e_sector[blockNo].foundKey[keyType] = 'S';
|
||||||
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _YELLOW_("%s") "] (used for nested / hardnested attack)",
|
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _GREEN_("%s") "] (used for nested / hardnested attack)",
|
||||||
blockNo,
|
blockNo,
|
||||||
keyType ? 'B' : 'A',
|
keyType ? 'B' : 'A',
|
||||||
sprint_hex(key, sizeof(key))
|
sprint_hex(key, sizeof(key))
|
||||||
|
@ -2421,7 +2411,7 @@ noValidKeyFound:
|
||||||
if (mfCheckKeys(FirstBlockOfSector(i), j, true, 1, tmp_key, &key64) == PM3_SUCCESS) {
|
if (mfCheckKeys(FirstBlockOfSector(i), j, true, 1, tmp_key, &key64) == PM3_SUCCESS) {
|
||||||
e_sector[i].Key[j] = bytes_to_num(tmp_key, 6);
|
e_sector[i].Key[j] = bytes_to_num(tmp_key, 6);
|
||||||
e_sector[i].foundKey[j] = 'R';
|
e_sector[i].foundKey[j] = 'R';
|
||||||
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _YELLOW_("%s") "]",
|
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _GREEN_("%s") "]",
|
||||||
i,
|
i,
|
||||||
j ? 'B' : 'A',
|
j ? 'B' : 'A',
|
||||||
sprint_hex(tmp_key, sizeof(tmp_key))
|
sprint_hex(tmp_key, sizeof(tmp_key))
|
||||||
|
@ -2463,7 +2453,7 @@ noValidKeyFound:
|
||||||
e_sector[current_sector_i].foundKey[current_key_type_i] = 'A';
|
e_sector[current_sector_i].foundKey[current_key_type_i] = 'A';
|
||||||
e_sector[current_sector_i].Key[current_key_type_i] = key64;
|
e_sector[current_sector_i].Key[current_key_type_i] = key64;
|
||||||
num_to_bytes(key64, 6, tmp_key);
|
num_to_bytes(key64, 6, tmp_key);
|
||||||
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _YELLOW_("%s") "]",
|
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _GREEN_("%s") "]",
|
||||||
current_sector_i,
|
current_sector_i,
|
||||||
current_key_type_i ? 'B' : 'A',
|
current_key_type_i ? 'B' : 'A',
|
||||||
sprint_hex(tmp_key, sizeof(tmp_key))
|
sprint_hex(tmp_key, sizeof(tmp_key))
|
||||||
|
@ -2479,9 +2469,6 @@ noValidKeyFound:
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (verbose) {
|
|
||||||
PrintAndLogEx(INFO, "======================= " _YELLOW_("STOP READ B KEY ATTACK") " =======================");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2545,9 +2532,6 @@ tryNested:
|
||||||
return PM3_ESOFT;
|
return PM3_ESOFT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (verbose) {
|
|
||||||
PrintAndLogEx(INFO, "======================= " _YELLOW_("STOP NESTED ATTACK") " =======================");
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
tryHardnested: // If the nested attack fails then we try the hardnested attack
|
tryHardnested: // If the nested attack fails then we try the hardnested attack
|
||||||
|
@ -2583,10 +2567,6 @@ tryHardnested: // If the nested attack fails then we try the hardnested attack
|
||||||
num_to_bytes(foundkey, 6, tmp_key);
|
num_to_bytes(foundkey, 6, tmp_key);
|
||||||
e_sector[current_sector_i].Key[current_key_type_i] = foundkey;
|
e_sector[current_sector_i].Key[current_key_type_i] = foundkey;
|
||||||
e_sector[current_sector_i].foundKey[current_key_type_i] = 'H';
|
e_sector[current_sector_i].foundKey[current_key_type_i] = 'H';
|
||||||
|
|
||||||
if (verbose) {
|
|
||||||
PrintAndLogEx(INFO, "======================= " _YELLOW_("STOP HARDNESTED ATTACK") " =======================");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (has_staticnonce) {
|
if (has_staticnonce) {
|
||||||
|
@ -2620,15 +2600,11 @@ tryStaticnested:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (verbose) {
|
|
||||||
PrintAndLogEx(INFO, "======================= " _YELLOW_("STOP STATIC NESTED ATTACK") " =======================");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if the key was found
|
// Check if the key was found
|
||||||
if (e_sector[current_sector_i].foundKey[current_key_type_i]) {
|
if (e_sector[current_sector_i].foundKey[current_key_type_i]) {
|
||||||
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [" _YELLOW_("%s") "]",
|
PrintAndLogEx(SUCCESS, "target sector:%3u key type: %c -- found valid key [ " _GREEN_("%s") "]",
|
||||||
current_sector_i,
|
current_sector_i,
|
||||||
current_key_type_i ? 'B' : 'A',
|
current_key_type_i ? 'B' : 'A',
|
||||||
sprint_hex(tmp_key, sizeof(tmp_key))
|
sprint_hex(tmp_key, sizeof(tmp_key))
|
||||||
|
|
|
@ -535,7 +535,7 @@ int mfnested(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo,
|
||||||
free(statelists[1].head.slhead);
|
free(statelists[1].head.slhead);
|
||||||
num_to_bytes(key64, 6, resultKey);
|
num_to_bytes(key64, 6, resultKey);
|
||||||
|
|
||||||
PrintAndLogEx(SUCCESS, "\ntarget block:%3u key type: %c -- found valid key [" _YELLOW_("%s") "]",
|
PrintAndLogEx(SUCCESS, "\ntarget block:%3u key type: %c -- found valid key [ " _GREEN_("%s") "]",
|
||||||
package->block,
|
package->block,
|
||||||
package->keytype ? 'B' : 'A',
|
package->keytype ? 'B' : 'A',
|
||||||
sprint_hex(resultKey, 6)
|
sprint_hex(resultKey, 6)
|
||||||
|
@ -714,7 +714,7 @@ int mfStaticNested(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBl
|
||||||
num_to_bytes(key64, 6, resultKey);
|
num_to_bytes(key64, 6, resultKey);
|
||||||
|
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(SUCCESS, "target block:%3u key type: %c -- found valid key [" _YELLOW_("%s") "]",
|
PrintAndLogEx(SUCCESS, "target block:%3u key type: %c -- found valid key [ " _GREEN_("%s") "]",
|
||||||
package->block,
|
package->block,
|
||||||
package->keytype ? 'B' : 'A',
|
package->keytype ? 'B' : 'A',
|
||||||
sprint_hex(resultKey, 6)
|
sprint_hex(resultKey, 6)
|
||||||
|
|
Loading…
Reference in a new issue