CHG: hf 14a read - started to add a Magic tag gen2 detection. SKipping it for now. Can't decide to put in on deviceside or in client.

FIX:  `lf read` - ophs..  it works again.
ADD: `lf em 4x05--`  - added a chipset definition
CHG: better kali fix - from @pwpivi
This commit is contained in:
iceman1001
2017-02-28 08:16:02 +01:00
parent 8db18d2f15
commit f24edfec54
5 changed files with 48 additions and 20 deletions

View File

@@ -391,18 +391,21 @@ int CmdHF14AReader(const char *Cmd) {
// try to see if card responses to "chinese magic backdoor" commands.
uint8_t isGeneration = 0;
clearCommandBuffer();
c.cmd = CMD_MIFARE_CIDENT;
c.arg[0] = 0;
c.arg[1] = 0;
c.arg[2] = 0;
SendCommand(&c);
if (WaitForResponseTimeout(CMD_ACK, &resp, 1500)) {
if (WaitForResponseTimeout(CMD_ACK, &resp, 1500))
isGeneration = resp.arg[0] & 0xff;
}
if ( isGeneration )
PrintAndLog("Answers to magic commands (GEN %s): YES", ((isGeneration & 0x2 )==2)?"1B":"1A");
switch( isGeneration ){
case 1: PrintAndLog("Answers to magic commands (GEN 1a): YES"); break;
case 2: PrintAndLog("Answers to magic commands (GEN 1b): YES"); break;
//case 4: PrintAndLog("Answers to magic commands (GEN 2): YES"); break;
default: PrintAndLog("Answers to magic commands: NO"); break;
}
// disconnect
SendCommand(&cDisconnect);

View File

@@ -567,14 +567,11 @@ int CmdLFRead(const char *Cmd) {
break;
default:
PrintAndLog("Unknown parameter '%c'", param_getchar(Cmd, cmdp));
errors = 1;
errors = TRUE;
break;
}
if(errors) break;
}
// No args
if (cmdp == 0) errors = 1;
//Validations
if (errors) return usage_lf_read();

View File

@@ -797,7 +797,7 @@ int EM4x05ReadWord_ext(uint8_t addr, uint32_t pwd, bool usePwd, uint32_t *word)
}
int testLen = (GraphTraceLen < 1000) ? GraphTraceLen : 1000;
if (graphJustNoise(GraphBuffer, testLen)) {
PrintAndLog("no tag not found");
PrintAndLog("no tag found");
return -1;
}
return demodEM4x05resp(word);
@@ -981,6 +981,7 @@ void printEM4x05info(uint32_t block0, uint32_t serial) {
switch (chipType) {
case 9: PrintAndLog("\n Chip Type: %u | EM4305", chipType); break;
case 8: PrintAndLog("\n Chip Type: %u | EM4205", chipType); break;
case 4: PrintAndLog(" Chip Type: %u | Unknown", chipType); break;
case 2: PrintAndLog(" Chip Type: %u | EM4469", chipType); break;
//add more here when known

View File

@@ -10,7 +10,10 @@
extern "C" {
#endif
#if defined(__linux__)
// make realpath() available:
#define _DEFAULT_SOURCE
#endif
#if !defined(WAI_MALLOC) || !defined(WAI_FREE) || !defined(WAI_REALLOC)
#include <stdlib.h>