From 125a98a1102cc27cefeba77f6d37542c1c475c52 Mon Sep 17 00:00:00 2001 From: "roel@libnfc.org" Date: Thu, 28 Feb 2013 22:22:24 +0000 Subject: [PATCH] fixed stupid 64-bit formatting for x86/amd64 and unix/windows --- client/cmdhf14a.c | 2 +- client/cmdhflegic.c | 2 +- client/cmdhfmf.c | 16 ++++++++-------- client/cmdlfti.c | 2 +- client/cmdmain.c | 8 ++++---- client/flash.c | 5 +++-- client/flasher.c | 10 +++++----- client/nonce2key/nonce2key.c | 6 +++++- client/nonce2key/nonce2key.h | 1 - client/proxmark3.c | 3 +++ client/proxmark3.h | 4 ++++ tools/nonce2key/nonce2key.c | 10 ++++++---- 12 files changed, 41 insertions(+), 28 deletions(-) diff --git a/client/cmdhf14a.c b/client/cmdhf14a.c index ad89fe96..78c269cb 100644 --- a/client/cmdhf14a.c +++ b/client/cmdhf14a.c @@ -391,7 +391,7 @@ int CmdHF14ASim(const char *Cmd) // Are we handling the (optional) second part uid? if (long_uid > 0xffffffff) { - PrintAndLog("Emulating ISO/IEC 14443 type A tag with 7 byte UID (%014llx)",long_uid); + PrintAndLog("Emulating ISO/IEC 14443 type A tag with 7 byte UID (%014"llx")",long_uid); // Store the second part c.arg[2] = (long_uid & 0xffffffff); long_uid >>= 32; diff --git a/client/cmdhflegic.c b/client/cmdhflegic.c index 26a2c724..2719029a 100644 --- a/client/cmdhflegic.c +++ b/client/cmdhflegic.c @@ -332,7 +332,7 @@ int CmdLegicRfSim(const char *Cmd) int CmdLegicRfWrite(const char *Cmd) { UsbCommand c={CMD_WRITER_LEGIC_RF}; - int res = sscanf(Cmd, " 0x%llx 0x%llx", &c.arg[0], &c.arg[1]); + int res = sscanf(Cmd, " 0x%"llx" 0x%"llx, &c.arg[0], &c.arg[1]); if(res != 2) { PrintAndLog("Please specify the offset and length as two hex strings"); return -1; diff --git a/client/cmdhfmf.c b/client/cmdhfmf.c index cea95ff0..11288085 100644 --- a/client/cmdhfmf.c +++ b/client/cmdhfmf.c @@ -76,13 +76,13 @@ start: PrintAndLog("Key not found (lfsr_common_prefix list is null). Nt=%08x", nt); } else { printf("------------------------------------------------------------------\n"); - PrintAndLog("Key found:%012llx \n", r_key); + PrintAndLog("Key found:%012"llx" \n", r_key); num_to_bytes(r_key, 6, keyBlock); isOK = mfCheckKeys(0, 0, 1, keyBlock, &r_key); } if (!isOK) - PrintAndLog("Found valid key:%012llx", r_key); + PrintAndLog("Found valid key:%012"llx, r_key); else { if (isOK != 2) PrintAndLog("Found invalid key. ( Nt=%08x ,Trying use it to run again...", nt); @@ -573,7 +573,7 @@ int CmdHF14AMfNested(const char *Cmd) if (res) res = mfCheckKeys(trgBlockNo, trgKeyType, 8, &keyBlock[6 * 8], &key64); if (!res) { - PrintAndLog("Found valid key:%012llx", key64); + PrintAndLog("Found valid key:%012"llx, key64); // transfer key to the emulator if (transferToEml) { @@ -633,7 +633,7 @@ int CmdHF14AMfNested(const char *Cmd) if (res) res = mfCheckKeys(trgBlockNo, trgKeyType, 8, &keyBlock[6 * 8], &key64); if (!res) { - PrintAndLog("Found valid key:%012llx", key64); + PrintAndLog("Found valid key:%012"llx, key64); e_sector[trgBlockNo / 4].foundKey[trgKeyType] = 1; e_sector[trgBlockNo / 4].Key[trgKeyType] = key64; } @@ -646,7 +646,7 @@ int CmdHF14AMfNested(const char *Cmd) PrintAndLog("|sec|key A |res|key B |res|"); PrintAndLog("|---|----------------|---|----------------|---|"); for (i = 0; i < SectorsCnt; i++) { - PrintAndLog("|%03d| %012llx | %d | %012llx | %d |", i, + PrintAndLog("|%03d| %012"llx" | %d | %012"llx" | %d |", i, e_sector[i].Key[0], e_sector[i].foundKey[0], e_sector[i].Key[1], e_sector[i].foundKey[1]); } PrintAndLog("|---|----------------|---|----------------|---|"); @@ -843,7 +843,7 @@ int CmdHF14AMfChk(const char *Cmd) } memset(keyBlock + 6 * keycnt, 0, 6); num_to_bytes(strtoll(buf, NULL, 16), 6, keyBlock + 6*keycnt); - PrintAndLog("chk custom key[%d] %012llx", keycnt, bytes_to_num(keyBlock + 6*keycnt, 6)); + PrintAndLog("chk custom key[%d] %012"llx, keycnt, bytes_to_num(keyBlock + 6*keycnt, 6)); keycnt++; } } else { @@ -873,7 +873,7 @@ int CmdHF14AMfChk(const char *Cmd) res = mfCheckKeys(b, t, size, keyBlock +6*c, &key64); if (res !=1) { if (!res) { - PrintAndLog("Found valid key:[%012llx]",key64); + PrintAndLog("Found valid key:[%012"llx"]",key64); if (transferToEml) { uint8_t block[16]; mfEmlGetMem(block, get_trailer_block(b), 1); @@ -1205,7 +1205,7 @@ int CmdHF14AMfEKeyPrn(const char *Cmd) } keyA = bytes_to_num(data, 6); keyB = bytes_to_num(data + 10, 6); - PrintAndLog("|%03d| %012llx | %012llx |", i, keyA, keyB); + PrintAndLog("|%03d| %012"llx" | %012"llx" |", i, keyA, keyB); } PrintAndLog("|---|----------------|----------------|"); diff --git a/client/cmdlfti.c b/client/cmdlfti.c index 5a88f579..26128e2f 100644 --- a/client/cmdlfti.c +++ b/client/cmdlfti.c @@ -274,7 +274,7 @@ int CmdTIWrite(const char *Cmd) UsbCommand c = {CMD_WRITE_TI_TYPE}; int res = 0; - res = sscanf(Cmd, "0x%llx 0x%llx 0x%llx ", &c.arg[0], &c.arg[1], &c.arg[2]); + res = sscanf(Cmd, "0x%"PRIu64"x 0x%"PRIu64"x 0x%"PRIu64"x ", &c.arg[0], &c.arg[1], &c.arg[2]); if (res == 2) c.arg[2]=0; if (res < 2) PrintAndLog("Please specify the data as two hex strings, optionally the CRC as a third"); diff --git a/client/cmdmain.c b/client/cmdmain.c index 62eef122..a9a37ad1 100644 --- a/client/cmdmain.c +++ b/client/cmdmain.c @@ -103,10 +103,10 @@ void UsbCommandReceived(UsbCommand *UC) /* // Debug printf("UsbCommand length[len=%zd]\n",sizeof(UsbCommand)); - printf(" cmd[len=%zd]: %llx\n",sizeof(UC->cmd),UC->cmd); - printf(" arg0[len=%zd]: %llx\n",sizeof(UC->arg[0]),UC->arg[0]); - printf(" arg1[len=%zd]: %llx\n",sizeof(UC->arg[1]),UC->arg[1]); - printf(" arg2[len=%zd]: %llx\n",sizeof(UC->arg[2]),UC->arg[2]); + printf(" cmd[len=%zd]: %"llx"\n",sizeof(UC->cmd),UC->cmd); + printf(" arg0[len=%zd]: %"llx"\n",sizeof(UC->arg[0]),UC->arg[0]); + printf(" arg1[len=%zd]: %"llx"\n",sizeof(UC->arg[1]),UC->arg[1]); + printf(" arg2[len=%zd]: %"llx"\n",sizeof(UC->arg[2]),UC->arg[2]); printf(" data[len=%zd]: %02x%02x%02x...\n",sizeof(UC->d.asBytes),UC->d.asBytes[0],UC->d.asBytes[1],UC->d.asBytes[2]); */ diff --git a/client/flash.c b/client/flash.c index 4d091126..4af0dea8 100644 --- a/client/flash.c +++ b/client/flash.c @@ -11,6 +11,7 @@ #include #include #include +#include "proxmark3.h" #include "sleep.h" //#include "proxusb.h" #include "flash.h" @@ -296,7 +297,7 @@ static int get_proxmark_state(uint32_t *state) *state = resp.arg[0]; break; default: - fprintf(stderr, "Error: Couldn't get proxmark state, bad response type: 0x%04llx\n", resp.cmd); + fprintf(stderr, "Error: Couldn't get proxmark state, bad response type: 0x%04"llx"\n", resp.cmd); return -1; break; } @@ -358,7 +359,7 @@ static int wait_for_ack(void) UsbCommand ack; ReceiveCommand(&ack); if (ack.cmd != CMD_ACK) { - printf("Error: Unexpected reply 0x%04llx (expected ACK)\n", ack.cmd); + printf("Error: Unexpected reply 0x%04"llx" (expected ACK)\n", ack.cmd); return -1; } return 0; diff --git a/client/flasher.c b/client/flasher.c index 2e8bd2ed..f2a8e7c8 100644 --- a/client/flasher.c +++ b/client/flasher.c @@ -10,7 +10,7 @@ #include #include #include "sleep.h" -//#include "proxusb.h" +#include "proxmark3.h" #include "flash.h" #include "uart.h" #include "usb_cmd.h" @@ -21,10 +21,10 @@ static char* serial_port_name; void cmd_debug(UsbCommand* UC) { // Debug printf("UsbCommand length[len=%zd]\n",sizeof(UsbCommand)); - printf(" cmd[len=%zd]: %016llx\n",sizeof(UC->cmd),UC->cmd); - printf(" arg0[len=%zd]: %016llx\n",sizeof(UC->arg[0]),UC->arg[0]); - printf(" arg1[len=%zd]: %016llx\n",sizeof(UC->arg[1]),UC->arg[1]); - printf(" arg2[len=%zd]: %016llx\n",sizeof(UC->arg[2]),UC->arg[2]); + printf(" cmd[len=%zd]: %016"llx"\n",sizeof(UC->cmd),UC->cmd); + printf(" arg0[len=%zd]: %016"llx"\n",sizeof(UC->arg[0]),UC->arg[0]); + printf(" arg1[len=%zd]: %016"llx"\n",sizeof(UC->arg[1]),UC->arg[1]); + printf(" arg2[len=%zd]: %016"llx"\n",sizeof(UC->arg[2]),UC->arg[2]); printf(" data[len=%zd]: ",sizeof(UC->d.asBytes)); for (size_t i=0; i<16; i++) { printf("%02x",UC->d.asBytes[i]); diff --git a/client/nonce2key/nonce2key.c b/client/nonce2key/nonce2key.c index 032b15c4..7459f1bb 100644 --- a/client/nonce2key/nonce2key.c +++ b/client/nonce2key/nonce2key.c @@ -10,6 +10,10 @@ // MIFARE Darkside hack //----------------------------------------------------------------------------- +#define __STDC_FORMAT_MACROS +#include +#define llx PRIx64 + #include "nonce2key.h" #include "ui.h" @@ -23,7 +27,7 @@ int nonce2key(uint32_t uid, uint32_t nt, uint64_t par_info, uint64_t ks_info, ui // Reset the last three significant bits of the reader nonce nr &= 0xffffff1f; - PrintAndLog("\nuid(%08x) nt(%08x) par(%016llx) ks(%016llx)\n\n",uid,nt,par_info,ks_info); + PrintAndLog("\nuid(%08x) nt(%08x) par(%016"llx") ks(%016"llx")\n\n",uid,nt,par_info,ks_info); for (pos=0; pos<8; pos++) { diff --git a/client/nonce2key/nonce2key.h b/client/nonce2key/nonce2key.h index acde7c88..8ae60504 100644 --- a/client/nonce2key/nonce2key.h +++ b/client/nonce2key/nonce2key.h @@ -13,7 +13,6 @@ #ifndef __NONCE2KEY_H #define __NONCE2KEY_H -#include #include #include #include "crapto1.h" diff --git a/client/proxmark3.c b/client/proxmark3.c index 5ac7cd0e..7226d3ae 100644 --- a/client/proxmark3.c +++ b/client/proxmark3.c @@ -197,6 +197,9 @@ static void *main_loop(void *targ) { int main(int argc, char* argv[]) { srand(time(0)); + + printf("lala: %08"llx"",(uint64_t)0xaabb11223344); + return 0; if (argc < 2) { printf("syntax: %s \n\n",argv[0]); diff --git a/client/proxmark3.h b/client/proxmark3.h index 2875511b..0bf5a9eb 100644 --- a/client/proxmark3.h +++ b/client/proxmark3.h @@ -12,6 +12,10 @@ #ifndef PROXMARK3_H__ #define PROXMARK3_H__ +#define __STDC_FORMAT_MACROS +#include +#define llx PRIx64 + #include #include "usb_cmd.h" diff --git a/tools/nonce2key/nonce2key.c b/tools/nonce2key/nonce2key.c index afe1b7ef..32ea0a68 100644 --- a/tools/nonce2key/nonce2key.c +++ b/tools/nonce2key/nonce2key.c @@ -1,5 +1,7 @@ #include "crapto1.h" +#define __STDC_FORMAT_MACROS #include +#define llx PRIx64 #include typedef unsigned char byte_t; @@ -18,13 +20,13 @@ int main(const int argc, const char* argv[]) { } sscanf(argv[1],"%08x",&uid); sscanf(argv[2],"%08x",&nt); - sscanf(argv[3],"%016llx",&par_info); - sscanf(argv[4],"%016llx",&ks_info); + sscanf(argv[3],"%016"llx,&par_info); + sscanf(argv[4],"%016"llx,&ks_info); // Reset the last three significant bits of the reader nonce nr &= 0xffffff1f; - printf("\nuid(%08x) nt(%08x) par(%016llx) ks(%016llx)\n\n",uid,nt,par_info,ks_info); + printf("\nuid(%08x) nt(%08x) par(%016"llx") ks(%016"llx")\n\n",uid,nt,par_info,ks_info); for (pos=0; pos<8; pos++) { @@ -50,7 +52,7 @@ int main(const int argc, const char* argv[]) { state = lfsr_common_prefix(nr,rr,ks3x,par); lfsr_rollback_word(state,uid^nt,0); crypto1_get_lfsr(state,&key_recovered); - printf("\nkey recovered: %012llx\n\n",key_recovered); + printf("\nkey recovered: %012"llx"\n\n",key_recovered); crypto1_destroy(state); return 0; -- 2.39.5