This commit is contained in:
iceman1001 2019-09-13 16:32:37 +02:00
commit f1307e703c
3 changed files with 49 additions and 49 deletions

View file

@ -482,8 +482,8 @@ static int CmdT55xxReadBlock(const char *Cmd) {
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 3) if (downlink_mode > 3)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
@ -649,10 +649,10 @@ static int CmdT55xxDetect(const char *Cmd) {
return PM3_ESOFT; return PM3_ESOFT;
if (useGB == false) { if (useGB == false) {
if ( try_all_dl_modes ) { if (try_all_dl_modes) {
for (uint8_t mode = 0; mode < 4; mode++) { for (uint8_t mode = 0; mode < 4; mode++) {
if ( AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, usepwd, password, mode) == false ) { if (AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, usepwd, password, mode) == false) {
continue; continue;
} }
@ -663,8 +663,8 @@ static int CmdT55xxDetect(const char *Cmd) {
} }
return PM3_ESOFT; return PM3_ESOFT;
} else { } else {
if ( AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, usepwd, password, downlink_mode) == false ) if (AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, usepwd, password, downlink_mode) == false)
return PM3_ENODATA; return PM3_ENODATA;
} }
} }
@ -1132,9 +1132,9 @@ static int CmdT55xxWakeUp(const char *Cmd) {
break; break;
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 3) if (downlink_mode > 3)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
default: default:
@ -1150,17 +1150,17 @@ static int CmdT55xxWakeUp(const char *Cmd) {
uint32_t password; uint32_t password;
uint8_t flags; uint8_t flags;
} PACKED payload; } PACKED payload;
payload.password = password; payload.password = password;
payload.flags = (downlink_mode & 3) << 3; payload.flags = (downlink_mode & 3) << 3;
clearCommandBuffer(); clearCommandBuffer();
SendCommandNG(CMD_LF_T55XX_WAKEUP, (uint8_t *)&payload, sizeof(payload)); SendCommandNG(CMD_LF_T55XX_WAKEUP, (uint8_t *)&payload, sizeof(payload));
if (!WaitForResponseTimeout(CMD_LF_T55XX_WAKEUP, NULL, 1000)) { if (!WaitForResponseTimeout(CMD_LF_T55XX_WAKEUP, NULL, 1000)) {
PrintAndLogEx(WARNING, "command execution time out"); PrintAndLogEx(WARNING, "command execution time out");
return PM3_ETIMEOUT; return PM3_ETIMEOUT;
} }
PrintAndLogEx(SUCCESS, "Wake up command sent. Try read now"); PrintAndLogEx(SUCCESS, "Wake up command sent. Try read now");
return PM3_SUCCESS; return PM3_SUCCESS;
} }
@ -1212,7 +1212,7 @@ static int CmdT55xxWriteBlock(const char *Cmd) {
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 3) if (downlink_mode > 3)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
default: default:
@ -1273,9 +1273,9 @@ static int CmdT55xxReadTrace(const char *Cmd) {
return usage_t55xx_trace(); return usage_t55xx_trace();
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 3) if (downlink_mode > 3)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
case '1': case '1':
@ -1302,7 +1302,7 @@ static int CmdT55xxReadTrace(const char *Cmd) {
if (!AquireData(T55x7_PAGE1, REGULAR_READ_MODE_BLOCK, pwdmode, password, downlink_mode)) if (!AquireData(T55x7_PAGE1, REGULAR_READ_MODE_BLOCK, pwdmode, password, downlink_mode))
return PM3_ENODATA; return PM3_ENODATA;
} }
if (config.Q5) { if (config.Q5) {
if (!DecodeT5555TraceBlock()) return PM3_ESOFT; if (!DecodeT5555TraceBlock()) return PM3_ESOFT;
} else { } else {
@ -1570,9 +1570,9 @@ static int CmdT55xxInfo(const char *Cmd) {
break; break;
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 3) if (downlink_mode > 3)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
default: default:
@ -1594,7 +1594,7 @@ static int CmdT55xxInfo(const char *Cmd) {
if (!AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, usepwd, password, downlink_mode)) if (!AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, usepwd, password, downlink_mode))
return PM3_ENODATA; return PM3_ENODATA;
} }
if (!gotdata) { if (!gotdata) {
if (!DecodeT55xxBlock()) return PM3_ESOFT; if (!DecodeT55xxBlock()) return PM3_ESOFT;
@ -1697,10 +1697,10 @@ static int CmdT55xxDump(const char *Cmd) {
while (param_getchar(Cmd, cmdp) != 0x00 && !errors) { while (param_getchar(Cmd, cmdp) != 0x00 && !errors) {
switch (tolower(param_getchar(Cmd, cmdp))) { switch (tolower(param_getchar(Cmd, cmdp))) {
case 'h': case 'h':
return usage_t55xx_dump(); return usage_t55xx_dump();
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 3) if (downlink_mode > 3)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
@ -2027,9 +2027,9 @@ static int CmdResetRead(const char *Cmd) {
return usage_t55xx_resetread(); return usage_t55xx_resetread();
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 3) if (downlink_mode > 3)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
default: default:
@ -2042,9 +2042,9 @@ static int CmdResetRead(const char *Cmd) {
if (errors) return usage_t55xx_resetread(); if (errors) return usage_t55xx_resetread();
PrintAndLogEx(INFO, "DL : %d\n", downlink_mode); PrintAndLogEx(INFO, "DL : %d\n", downlink_mode);
flags = downlink_mode << 3; flags = downlink_mode << 3;
clearCommandBuffer(); clearCommandBuffer();
SendCommandNG(CMD_LF_T55XX_RESET_READ, &flags, sizeof(flags)); SendCommandNG(CMD_LF_T55XX_RESET_READ, &flags, sizeof(flags));
if (!WaitForResponseTimeout(CMD_ACK, NULL, 2500)) { if (!WaitForResponseTimeout(CMD_ACK, NULL, 2500)) {
@ -2153,7 +2153,7 @@ static int CmdT55xxChkPwds(const char *Cmd) {
return usage_t55xx_chk(); return usage_t55xx_chk();
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode >= 4) { if (downlink_mode >= 4) {
try_all_dl_modes = true; try_all_dl_modes = true;
downlink_mode = 4; downlink_mode = 4;
} }
@ -2164,7 +2164,7 @@ static int CmdT55xxChkPwds(const char *Cmd) {
cmdp++; cmdp++;
break; break;
case 'i': case 'i':
if ( param_getstr(Cmd, cmdp + 1, filename, sizeof(filename)) == 0 ) { if (param_getstr(Cmd, cmdp + 1, filename, sizeof(filename)) == 0) {
PrintAndLogEx(ERR, "Error, no filename after 'f' was found"); PrintAndLogEx(ERR, "Error, no filename after 'f' was found");
errors = true; errors = true;
} }
@ -2305,9 +2305,9 @@ static int CmdT55xxBruteForce(const char *Cmd) {
return usage_t55xx_bruteforce(); return usage_t55xx_bruteforce();
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 4) if (downlink_mode > 4)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
case 's': case 's':
@ -2415,9 +2415,9 @@ static int CmdT55xxRecoverPW(const char *Cmd) {
break; break;
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 4) if (downlink_mode > 4)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
default: default:
@ -2644,12 +2644,12 @@ static int CmdT55xxDetectPage1(const char *Cmd) {
break; break;
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode == 4) if (downlink_mode == 4)
try_all_dl_modes = true; try_all_dl_modes = true;
if (downlink_mode > 3) if (downlink_mode > 3)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
default: default:
@ -2725,10 +2725,10 @@ static int CmdT55xxSetDeviceConfig(const char *Cmd) {
cmdp += 2; cmdp += 2;
break; break;
case 'r': case 'r':
downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10); downlink_mode = param_get8ex(Cmd, cmdp + 1, 0, 10);
if (downlink_mode > 3) if (downlink_mode > 3)
downlink_mode = 0; downlink_mode = 0;
cmdp += 2; cmdp += 2;
break; break;
case 'p': case 'p':

View file

@ -303,18 +303,18 @@ static uint16_t printTraceLine(uint16_t tracepos, uint16_t traceLen, uint8_t *tr
&& (oddparity8(frame[j]) != ((parityBits >> (7 - (j & 0x0007))) & 0x01))) { && (oddparity8(frame[j]) != ((parityBits >> (7 - (j & 0x0007))) & 0x01))) {
snprintf(line[j / 18] + ((j % 18) * 4), 110, "%02x! ", frame[j]); snprintf(line[j / 18] + ((j % 18) * 4), 110, "%02x! ", frame[j]);
} else if ( protocol == ICLASS && isResponse == false) { } else if (protocol == ICLASS && isResponse == false) {
uint8_t parity = 0; uint8_t parity = 0;
for (int i=0; i<6; i++) { for (int i = 0; i < 6; i++) {
parity ^= ((frame[0] >> i) & 1); parity ^= ((frame[0] >> i) & 1);
} }
if ( parity == ((frame[0] >> 7) & 1)) { if (parity == ((frame[0] >> 7) & 1)) {
snprintf(line[j / 18] + ((j % 18) * 4), 110, "%02x ", frame[j]); snprintf(line[j / 18] + ((j % 18) * 4), 110, "%02x ", frame[j]);
} else { } else {
snprintf(line[j / 18] + ((j % 18) * 4), 110, "%02x! ", frame[j]); snprintf(line[j / 18] + ((j % 18) * 4), 110, "%02x! ", frame[j]);
} }
} else { } else {
snprintf(line[j / 18] + ((j % 18) * 4), 110, "%02x ", frame[j]); snprintf(line[j / 18] + ((j % 18) * 4), 110, "%02x ", frame[j]);
} }

View file

@ -368,13 +368,13 @@ static void show_help(bool showFullHelp, char *exec_name) {
PrintAndLogEx(NORMAL, "\n to flash fullimage and bootloader:\n"); PrintAndLogEx(NORMAL, "\n to flash fullimage and bootloader:\n");
PrintAndLogEx(NORMAL, " %s "SERIAL_PORT_EXAMPLE_H" --flash --unlock-bootloader --image bootrom.elf --image fullimage.elf", exec_name); PrintAndLogEx(NORMAL, " %s "SERIAL_PORT_EXAMPLE_H" --flash --unlock-bootloader --image bootrom.elf --image fullimage.elf", exec_name);
#ifdef __linux__ #ifdef __linux__
PrintAndLogEx(NORMAL, "\nNote (Linux):\nif the flasher gets stuck in 'Waiting for Proxmark3 to reappear on <DEVICE>',"); PrintAndLogEx(NORMAL, "\nNote (Linux):\nif the flasher gets stuck in 'Waiting for Proxmark3 to reappear on <DEVICE>',");
PrintAndLogEx(NORMAL, "you need to blacklist Proxmark3 for modem-manager - see documentation for more details:"); PrintAndLogEx(NORMAL, "you need to blacklist Proxmark3 for modem-manager - see documentation for more details:");
PrintAndLogEx(NORMAL, "* https://github.com/RfidResearchGroup/proxmark3/blob/master/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md"); PrintAndLogEx(NORMAL, "* https://github.com/RfidResearchGroup/proxmark3/blob/master/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md");
PrintAndLogEx(NORMAL, "\nMore info on flashing procedure from the official Proxmark3 wiki:"); PrintAndLogEx(NORMAL, "\nMore info on flashing procedure from the official Proxmark3 wiki:");
PrintAndLogEx(NORMAL, "* https://github.com/Proxmark/proxmark3/wiki/Gentoo%%20Linux"); PrintAndLogEx(NORMAL, "* https://github.com/Proxmark/proxmark3/wiki/Gentoo%%20Linux");
PrintAndLogEx(NORMAL, "* https://github.com/Proxmark/proxmark3/wiki/Ubuntu%%20Linux"); PrintAndLogEx(NORMAL, "* https://github.com/Proxmark/proxmark3/wiki/Ubuntu%%20Linux");
PrintAndLogEx(NORMAL, "* https://github.com/Proxmark/proxmark3/wiki/OSX\n"); PrintAndLogEx(NORMAL, "* https://github.com/Proxmark/proxmark3/wiki/OSX\n");
#endif #endif
} }
} }