mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-12-28 19:31:19 +08:00
CHG: coverity complains about not reading the value from mifare_send_short
CHG: ubuntu 14.04 gcc4.8.4 complains about mem_avail still. Don't know why.
This commit is contained in:
parent
38a30dbf18
commit
dd83c4572b
4 changed files with 97 additions and 261 deletions
|
@ -2222,7 +2222,7 @@ void ReaderMifare(bool first_try, uint8_t block, uint8_t keytype ) {
|
|||
sync_cycles = PRNG_SEQUENCE_LENGTH; // Mifare Classic's random generator repeats every 2^16 cycles (and so do the nonces).
|
||||
nt_attacked = 0;
|
||||
|
||||
if (MF_DBGLEVEL >= 4) Dbprintf("Mifare::Sync %08x", sync_time);
|
||||
if (MF_DBGLEVEL >= 4) Dbprintf("Mifare::Sync %u", sync_time);
|
||||
|
||||
if (first_try) {
|
||||
mf_nr_ar3 = 0;
|
||||
|
|
|
@ -471,7 +471,11 @@ int mifare_ultra_writeblock(uint8_t blockNo, uint8_t *blockData) {
|
|||
}
|
||||
int mifare_classic_halt_ex(struct Crypto1State *pcs) {
|
||||
uint8_t receivedAnswer[4] = {0x00, 0x00, 0x00, 0x00};
|
||||
mifare_sendcmd_short(pcs, (pcs == NULL) ? CRYPT_NONE : CRYPT_ALL, 0x50, 0x00, receivedAnswer, NULL, NULL);
|
||||
uint16_t len = mifare_sendcmd_short(pcs, (pcs == NULL) ? CRYPT_NONE : CRYPT_ALL, 0x50, 0x00, receivedAnswer, NULL, NULL);
|
||||
if (len != 0) {
|
||||
if (MF_DBGLEVEL >= MF_DBG_EXTENDED) Dbprintf("halt warning. response len: %x", len);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int mifare_classic_halt(struct Crypto1State *pcs, uint32_t uid) {
|
||||
|
|
|
@ -769,7 +769,7 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
|
|||
if (have_debit_key) memcpy(tag_data+(3*8),div_key,8);
|
||||
if (have_credit_key) memcpy(tag_data+(4*8),c_div_key,8);
|
||||
|
||||
printf("Num of bytes: %lu\n", gotBytes);
|
||||
printf("Num of bytes: %u\n", gotBytes);
|
||||
|
||||
// print the dump
|
||||
printf("------+--+-------------------------+\n");
|
||||
|
|
348
client/cmdhw.c
348
client/cmdhw.c
|
@ -30,112 +30,45 @@ static void lookupChipID(uint32_t iChipID, uint32_t mem_used)
|
|||
memset(asBuff, 0, sizeof(asBuff));
|
||||
uint32_t mem_avail = 0;
|
||||
|
||||
switch(iChipID)
|
||||
{
|
||||
case 0x270B0A40:
|
||||
sprintf(asBuff,"AT91SAM7S512 Rev A");
|
||||
break;
|
||||
case 0x270B0A4F:
|
||||
sprintf(asBuff,"AT91SAM7S512 Rev B");
|
||||
break;
|
||||
case 0x270D0940:
|
||||
sprintf(asBuff,"AT91SAM7S256 Rev A");
|
||||
break;
|
||||
case 0x270B0941:
|
||||
sprintf(asBuff,"AT91SAM7S256 Rev B");
|
||||
break;
|
||||
case 0x270B0942:
|
||||
sprintf(asBuff,"AT91SAM7S256 Rev C");
|
||||
break;
|
||||
case 0x270B0943:
|
||||
sprintf(asBuff,"AT91SAM7S256 Rev D");
|
||||
break;
|
||||
case 0x270C0740:
|
||||
sprintf(asBuff,"AT91SAM7S128 Rev A");
|
||||
break;
|
||||
case 0x270A0741:
|
||||
sprintf(asBuff,"AT91SAM7S128 Rev B");
|
||||
break;
|
||||
case 0x270A0742:
|
||||
sprintf(asBuff,"AT91SAM7S128 Rev C");
|
||||
break;
|
||||
case 0x270A0743:
|
||||
sprintf(asBuff,"AT91SAM7S128 Rev D");
|
||||
break;
|
||||
case 0x27090540:
|
||||
sprintf(asBuff,"AT91SAM7S64 Rev A");
|
||||
break;
|
||||
case 0x27090543:
|
||||
sprintf(asBuff,"AT91SAM7S64 Rev B");
|
||||
break;
|
||||
case 0x27090544:
|
||||
sprintf(asBuff,"AT91SAM7S64 Rev C");
|
||||
break;
|
||||
case 0x27080342:
|
||||
sprintf(asBuff,"AT91SAM7S321 Rev A");
|
||||
break;
|
||||
case 0x27080340:
|
||||
sprintf(asBuff,"AT91SAM7S32 Rev A");
|
||||
break;
|
||||
case 0x27080341:
|
||||
sprintf(asBuff,"AT91SAM7S32 Rev B");
|
||||
break;
|
||||
case 0x27050241:
|
||||
sprintf(asBuff,"AT9SAM7S161 Rev A");
|
||||
break;
|
||||
case 0x27050240:
|
||||
sprintf(asBuff,"AT91SAM7S16 Rev A");
|
||||
break;
|
||||
switch(iChipID) {
|
||||
case 0x270B0A40: sprintf(asBuff,"AT91SAM7S512 Rev A"); break;
|
||||
case 0x270B0A4F: sprintf(asBuff,"AT91SAM7S512 Rev B"); break;
|
||||
case 0x270D0940: sprintf(asBuff,"AT91SAM7S256 Rev A"); break;
|
||||
case 0x270B0941: sprintf(asBuff,"AT91SAM7S256 Rev B"); break;
|
||||
case 0x270B0942: sprintf(asBuff,"AT91SAM7S256 Rev C"); break;
|
||||
case 0x270B0943: sprintf(asBuff,"AT91SAM7S256 Rev D"); break;
|
||||
case 0x270C0740: sprintf(asBuff,"AT91SAM7S128 Rev A"); break;
|
||||
case 0x270A0741: sprintf(asBuff,"AT91SAM7S128 Rev B"); break;
|
||||
case 0x270A0742: sprintf(asBuff,"AT91SAM7S128 Rev C"); break;
|
||||
case 0x270A0743: sprintf(asBuff,"AT91SAM7S128 Rev D"); break;
|
||||
case 0x27090540: sprintf(asBuff,"AT91SAM7S64 Rev A"); break;
|
||||
case 0x27090543: sprintf(asBuff,"AT91SAM7S64 Rev B"); break;
|
||||
case 0x27090544: sprintf(asBuff,"AT91SAM7S64 Rev C"); break;
|
||||
case 0x27080342: sprintf(asBuff,"AT91SAM7S321 Rev A"); break;
|
||||
case 0x27080340: sprintf(asBuff,"AT91SAM7S32 Rev A"); break;
|
||||
case 0x27080341: sprintf(asBuff,"AT91SAM7S32 Rev B"); break;
|
||||
case 0x27050241: sprintf(asBuff,"AT9SAM7S161 Rev A"); break;
|
||||
case 0x27050240: sprintf(asBuff,"AT91SAM7S16 Rev A"); break;
|
||||
}
|
||||
PrintAndLog("uC: %s",asBuff);
|
||||
switch((iChipID&0xE0)>>5)
|
||||
{
|
||||
case 1:
|
||||
sprintf(asBuff,"ARM946ES");
|
||||
break;
|
||||
case 2:
|
||||
sprintf(asBuff,"ARM7TDMI");
|
||||
break;
|
||||
case 4:
|
||||
sprintf(asBuff,"ARM920T");
|
||||
break;
|
||||
case 5:
|
||||
sprintf(asBuff,"ARM926EJS");
|
||||
break;
|
||||
switch( (iChipID & 0xE0) >> 5) {
|
||||
case 1: sprintf(asBuff,"ARM946ES"); break;
|
||||
case 2: sprintf(asBuff,"ARM7TDMI"); break;
|
||||
case 4: sprintf(asBuff,"ARM920T"); break;
|
||||
case 5: sprintf(asBuff,"ARM926EJS"); break;
|
||||
}
|
||||
PrintAndLog("Embedded Processor: %s",asBuff);
|
||||
switch((iChipID&0xF00)>>8)
|
||||
{
|
||||
case 0:
|
||||
mem_avail = 0;
|
||||
break;
|
||||
case 1:
|
||||
mem_avail = 8;
|
||||
break;
|
||||
case 2:
|
||||
mem_avail = 16;
|
||||
break;
|
||||
case 3:
|
||||
mem_avail = 32;
|
||||
break;
|
||||
case 5:
|
||||
mem_avail = 64;
|
||||
break;
|
||||
case 7:
|
||||
mem_avail = 128;
|
||||
break;
|
||||
case 9:
|
||||
mem_avail = 256;
|
||||
break;
|
||||
case 10:
|
||||
mem_avail = 512;
|
||||
break;
|
||||
case 12:
|
||||
mem_avail = 1024;
|
||||
break;
|
||||
case 14:
|
||||
mem_avail = 2048;
|
||||
break;
|
||||
switch( (iChipID & 0xF00) >> 8) {
|
||||
case 0: mem_avail = 0; break;
|
||||
case 1: mem_avail = 8; break;
|
||||
case 2: mem_avail = 16; break;
|
||||
case 3: mem_avail = 32; break;
|
||||
case 5: mem_avail = 64; break;
|
||||
case 7: mem_avail = 128; break;
|
||||
case 9: mem_avail = 256; break;
|
||||
case 10: mem_avail = 512; break;
|
||||
case 12: mem_avail = 1024; break;
|
||||
case 14: mem_avail = 2048; break;
|
||||
}
|
||||
|
||||
uint32_t mem_left = 0;
|
||||
|
@ -148,168 +81,67 @@ static void lookupChipID(uint32_t iChipID, uint32_t mem_used)
|
|||
mem_avail == 0 ? 0.0f : (float)mem_used/(mem_avail*1024)*100,
|
||||
mem_left,
|
||||
mem_avail == 0 ? 0.0f : (float)mem_left/(mem_avail*1024)*100
|
||||
);
|
||||
switch((iChipID&0xF000)>>12)
|
||||
{
|
||||
case 0:
|
||||
sprintf(asBuff,"None");
|
||||
break;
|
||||
case 1:
|
||||
sprintf(asBuff,"8K bytes");
|
||||
break;
|
||||
case 2:
|
||||
sprintf(asBuff,"16K bytes");
|
||||
break;
|
||||
case 3:
|
||||
sprintf(asBuff,"32K bytes");
|
||||
break;
|
||||
case 5:
|
||||
sprintf(asBuff,"64K bytes");
|
||||
break;
|
||||
case 7:
|
||||
sprintf(asBuff,"128K bytes");
|
||||
break;
|
||||
case 9:
|
||||
sprintf(asBuff,"256K bytes");
|
||||
break;
|
||||
case 10:
|
||||
sprintf(asBuff,"512K bytes");
|
||||
break;
|
||||
case 12:
|
||||
sprintf(asBuff,"1024K bytes");
|
||||
break;
|
||||
case 14:
|
||||
sprintf(asBuff,"2048K bytes");
|
||||
break;
|
||||
);
|
||||
|
||||
switch( (iChipID & 0xF000) >> 12 ) {
|
||||
case 0: sprintf(asBuff,"None"); break;
|
||||
case 1: sprintf(asBuff,"8K bytes"); break;
|
||||
case 2: sprintf(asBuff,"16K bytes"); break;
|
||||
case 3: sprintf(asBuff,"32K bytes"); break;
|
||||
case 5: sprintf(asBuff,"64K bytes"); break;
|
||||
case 7: sprintf(asBuff,"128K bytes"); break;
|
||||
case 9: sprintf(asBuff,"256K bytes"); break;
|
||||
case 10: sprintf(asBuff,"512K bytes"); break;
|
||||
case 12: sprintf(asBuff,"1024K bytes"); break;
|
||||
case 14: sprintf(asBuff,"2048K bytes"); break;
|
||||
}
|
||||
PrintAndLog("Second Nonvolatile Program Memory Size: %s",asBuff);
|
||||
switch((iChipID&0xF0000)>>16)
|
||||
{
|
||||
case 1:
|
||||
sprintf(asBuff,"1K bytes");
|
||||
break;
|
||||
case 2:
|
||||
sprintf(asBuff,"2K bytes");
|
||||
break;
|
||||
case 3:
|
||||
sprintf(asBuff,"6K bytes");
|
||||
break;
|
||||
case 4:
|
||||
sprintf(asBuff,"112K bytes");
|
||||
break;
|
||||
case 5:
|
||||
sprintf(asBuff,"4K bytes");
|
||||
break;
|
||||
case 6:
|
||||
sprintf(asBuff,"80K bytes");
|
||||
break;
|
||||
case 7:
|
||||
sprintf(asBuff,"160K bytes");
|
||||
break;
|
||||
case 8:
|
||||
sprintf(asBuff,"8K bytes");
|
||||
break;
|
||||
case 9:
|
||||
sprintf(asBuff,"16K bytes");
|
||||
break;
|
||||
case 10:
|
||||
sprintf(asBuff,"32K bytes");
|
||||
break;
|
||||
case 11:
|
||||
sprintf(asBuff,"64K bytes");
|
||||
break;
|
||||
case 12:
|
||||
sprintf(asBuff,"128K bytes");
|
||||
break;
|
||||
case 13:
|
||||
sprintf(asBuff,"256K bytes");
|
||||
break;
|
||||
case 14:
|
||||
sprintf(asBuff,"96K bytes");
|
||||
break;
|
||||
case 15:
|
||||
sprintf(asBuff,"512K bytes");
|
||||
break;
|
||||
switch( (iChipID & 0xF0000) >> 16) {
|
||||
case 1: sprintf(asBuff,"1K bytes"); break;
|
||||
case 2: sprintf(asBuff,"2K bytes"); break;
|
||||
case 3: sprintf(asBuff,"6K bytes"); break;
|
||||
case 4: sprintf(asBuff,"112K bytes"); break;
|
||||
case 5: sprintf(asBuff,"4K bytes"); break;
|
||||
case 6: sprintf(asBuff,"80K bytes"); break;
|
||||
case 7: sprintf(asBuff,"160K bytes"); break;
|
||||
case 8: sprintf(asBuff,"8K bytes"); break;
|
||||
case 9: sprintf(asBuff,"16K bytes"); break;
|
||||
case 10: sprintf(asBuff,"32K bytes"); break;
|
||||
case 11: sprintf(asBuff,"64K bytes"); break;
|
||||
case 12: sprintf(asBuff,"128K bytes"); break;
|
||||
case 13: sprintf(asBuff,"256K bytes"); break;
|
||||
case 14: sprintf(asBuff,"96K bytes"); break;
|
||||
case 15: sprintf(asBuff,"512K bytes");break;
|
||||
}
|
||||
PrintAndLog("Internal SRAM Size: %s",asBuff);
|
||||
switch((iChipID&0xFF00000)>>20)
|
||||
{
|
||||
case 0x19:
|
||||
sprintf(asBuff,"AT91SAM9xx Series");
|
||||
break;
|
||||
case 0x29:
|
||||
sprintf(asBuff,"AT91SAM9XExx Series");
|
||||
break;
|
||||
case 0x34:
|
||||
sprintf(asBuff,"AT91x34 Series");
|
||||
break;
|
||||
case 0x37:
|
||||
sprintf(asBuff,"CAP7 Series");
|
||||
break;
|
||||
case 0x39:
|
||||
sprintf(asBuff,"CAP9 Series");
|
||||
break;
|
||||
case 0x3B:
|
||||
sprintf(asBuff,"CAP11 Series");
|
||||
break;
|
||||
case 0x40:
|
||||
sprintf(asBuff,"AT91x40 Series");
|
||||
break;
|
||||
case 0x42:
|
||||
sprintf(asBuff,"AT91x42 Series");
|
||||
break;
|
||||
case 0x55:
|
||||
sprintf(asBuff,"AT91x55 Series");
|
||||
break;
|
||||
case 0x60:
|
||||
sprintf(asBuff,"AT91SAM7Axx Series");
|
||||
break;
|
||||
case 0x61:
|
||||
sprintf(asBuff,"AT91SAM7AQxx Series");
|
||||
break;
|
||||
case 0x63:
|
||||
sprintf(asBuff,"AT91x63 Series");
|
||||
break;
|
||||
case 0x70:
|
||||
sprintf(asBuff,"AT91SAM7Sxx Series");
|
||||
break;
|
||||
case 0x71:
|
||||
sprintf(asBuff,"AT91SAM7XCxx Series");
|
||||
break;
|
||||
case 0x72:
|
||||
sprintf(asBuff,"AT91SAM7SExx Series");
|
||||
break;
|
||||
case 0x73:
|
||||
sprintf(asBuff,"AT91SAM7Lxx Series");
|
||||
break;
|
||||
case 0x75:
|
||||
sprintf(asBuff,"AT91SAM7Xxx Series");
|
||||
break;
|
||||
case 0x92:
|
||||
sprintf(asBuff,"AT91x92 Series");
|
||||
break;
|
||||
case 0xF0:
|
||||
sprintf(asBuff,"AT75Cxx Series");
|
||||
break;
|
||||
switch( (iChipID & 0xFF00000) >> 20) {
|
||||
case 0x19: sprintf(asBuff,"AT91SAM9xx Series"); break;
|
||||
case 0x29: sprintf(asBuff,"AT91SAM9XExx Series"); break;
|
||||
case 0x34: sprintf(asBuff,"AT91x34 Series"); break;
|
||||
case 0x37: sprintf(asBuff,"CAP7 Series"); break;
|
||||
case 0x39: sprintf(asBuff,"CAP9 Series"); break;
|
||||
case 0x3B: sprintf(asBuff,"CAP11 Series"); break;
|
||||
case 0x40: sprintf(asBuff,"AT91x40 Series"); break;
|
||||
case 0x42: sprintf(asBuff,"AT91x42 Series"); break;
|
||||
case 0x55: sprintf(asBuff,"AT91x55 Series"); break;
|
||||
case 0x60: sprintf(asBuff,"AT91SAM7Axx Series"); break;
|
||||
case 0x61: sprintf(asBuff,"AT91SAM7AQxx Series"); break;
|
||||
case 0x63: sprintf(asBuff,"AT91x63 Series"); break;
|
||||
case 0x70: sprintf(asBuff,"AT91SAM7Sxx Series"); break;
|
||||
case 0x71: sprintf(asBuff,"AT91SAM7XCxx Series"); break;
|
||||
case 0x72: sprintf(asBuff,"AT91SAM7SExx Series"); break;
|
||||
case 0x73: sprintf(asBuff,"AT91SAM7Lxx Series"); break;
|
||||
case 0x75: sprintf(asBuff,"AT91SAM7Xxx Series"); break;
|
||||
case 0x92: sprintf(asBuff,"AT91x92 Series"); break;
|
||||
case 0xF0: sprintf(asBuff,"AT75Cxx Series"); break;
|
||||
}
|
||||
PrintAndLog("Architecture Identifier: %s",asBuff);
|
||||
switch((iChipID&0x70000000)>>28)
|
||||
{
|
||||
case 0:
|
||||
sprintf(asBuff,"ROM");
|
||||
break;
|
||||
case 1:
|
||||
sprintf(asBuff,"ROMless or on-chip Flash");
|
||||
break;
|
||||
case 4:
|
||||
sprintf(asBuff,"SRAM emulating ROM");
|
||||
break;
|
||||
case 2:
|
||||
sprintf(asBuff,"Embedded Flash Memory");
|
||||
break;
|
||||
case 3:
|
||||
sprintf(asBuff,"ROM and Embedded Flash Memory\nNVPSIZ is ROM size\nNVPSIZ2 is Flash size");
|
||||
break;
|
||||
switch( (iChipID & 0x70000000) >> 28 ) {
|
||||
case 0: sprintf(asBuff,"ROM"); break;
|
||||
case 1: sprintf(asBuff,"ROMless or on-chip Flash"); break;
|
||||
case 2: sprintf(asBuff,"Embedded Flash Memory"); break;
|
||||
case 3: sprintf(asBuff,"ROM and Embedded Flash Memory\nNVPSIZ is ROM size\nNVPSIZ2 is Flash size"); break;
|
||||
case 4: sprintf(asBuff,"SRAM emulating ROM"); break;
|
||||
}
|
||||
PrintAndLog("Nonvolatile Program Memory Type: %s",asBuff);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue