mirror of
https://github.com/Proxmark/proxmark3.git
synced 2024-11-11 01:35:51 +08:00
Code cleanup:
- correctly using stdtypes.h printf and scanf format string macros (PRIx64 et al) - coverity fixes to client/cmdhfmf.c - fix linker warning re missing entry point when linking fullimage.elf
This commit is contained in:
parent
43534cbad2
commit
4c16ae80f0
7 changed files with 36 additions and 37 deletions
|
@ -100,7 +100,7 @@ $(OBJDIR)/fullimage.data.o: $(OBJDIR)/fullimage.data.bin.z
|
|||
$(OBJCOPY) -O elf32-littlearm -I binary -B arm --rename-section .data=compressed_data $^ $@
|
||||
|
||||
$(OBJDIR)/fullimage.elf: $(OBJDIR)/fullimage.nodata.o $(OBJDIR)/fullimage.data.o
|
||||
$(CC) $(LDFLAGS) -Wl,-T,ldscript,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^
|
||||
$(CC) $(LDFLAGS) -Wl,-T,ldscript,-e,_osimage_entry,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^
|
||||
|
||||
tarbin: $(OBJS)
|
||||
$(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(OBJS:%=armsrc/%) $(OBJS:%.s19=armsrc/%.elf)
|
||||
|
|
|
@ -340,7 +340,7 @@ static void hitag2_handle_reader_command(byte_t* rx, const size_t rxlen, byte_t*
|
|||
|
||||
// Unknown command
|
||||
default:
|
||||
Dbprintf("Uknown command: %02x %02x",rx[0],rx[1]);
|
||||
Dbprintf("Unknown command: %02x %02x",rx[0],rx[1]);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -35,7 +35,9 @@ int CmdHF14AMifare(const char *Cmd)
|
|||
SendCommand(&c);
|
||||
|
||||
//flush queue
|
||||
while (ukbhit()) getchar();
|
||||
while (ukbhit()) {
|
||||
int c = getchar(); (void) c;
|
||||
}
|
||||
|
||||
// wait cycle
|
||||
while (true) {
|
||||
|
@ -303,7 +305,8 @@ int CmdHF14AMfDump(const char *Cmd)
|
|||
|
||||
// Read keys A from file
|
||||
for (sectorNo=0; sectorNo<numSectors; sectorNo++) {
|
||||
if (fread( keyA[sectorNo], 1, 6, fin ) == 0) {
|
||||
size_t bytes_read = fread(keyA[sectorNo], 1, 6, fin);
|
||||
if (bytes_read != 6) {
|
||||
PrintAndLog("File reading error.");
|
||||
fclose(fin);
|
||||
return 2;
|
||||
|
@ -312,7 +315,8 @@ int CmdHF14AMfDump(const char *Cmd)
|
|||
|
||||
// Read keys B from file
|
||||
for (sectorNo=0; sectorNo<numSectors; sectorNo++) {
|
||||
if (fread( keyB[sectorNo], 1, 6, fin ) == 0) {
|
||||
size_t bytes_read = fread(keyB[sectorNo], 1, 6, fin);
|
||||
if (bytes_read != 6) {
|
||||
PrintAndLog("File reading error.");
|
||||
fclose(fin);
|
||||
return 2;
|
||||
|
@ -467,16 +471,17 @@ int CmdHF14AMfRestore(const char *Cmd)
|
|||
}
|
||||
|
||||
for (sectorNo = 0; sectorNo < numSectors; sectorNo++) {
|
||||
if (fread(keyA[sectorNo], 1, 6, fkeys) == 0) {
|
||||
size_t bytes_read = fread(keyA[sectorNo], 1, 6, fkeys);
|
||||
if (bytes_read != 6) {
|
||||
PrintAndLog("File reading error (dumpkeys.bin).");
|
||||
|
||||
fclose(fkeys);
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
for (sectorNo = 0; sectorNo < numSectors; sectorNo++) {
|
||||
if (fread(keyB[sectorNo], 1, 6, fkeys) == 0) {
|
||||
size_t bytes_read = fread(keyB[sectorNo], 1, 6, fkeys);
|
||||
if (bytes_read != 6) {
|
||||
PrintAndLog("File reading error (dumpkeys.bin).");
|
||||
fclose(fkeys);
|
||||
return 2;
|
||||
|
@ -496,7 +501,8 @@ int CmdHF14AMfRestore(const char *Cmd)
|
|||
UsbCommand c = {CMD_MIFARE_WRITEBL, {FirstBlockOfSector(sectorNo) + blockNo, keyType, 0}};
|
||||
memcpy(c.d.asBytes, key, 6);
|
||||
|
||||
if (fread(bldata, 1, 16, fdump) == 0) {
|
||||
size_t bytes_read = fread(bldata, 1, 16, fdump);
|
||||
if (bytes_read != 16) {
|
||||
PrintAndLog("File reading error (dumpdata.bin).");
|
||||
fclose(fdump);
|
||||
return 2;
|
||||
|
@ -920,6 +926,7 @@ int CmdHF14AMfChk(const char *Cmd)
|
|||
if (!p) {
|
||||
PrintAndLog("Cannot allocate memory for defKeys");
|
||||
free(keyBlock);
|
||||
fclose(f);
|
||||
return 2;
|
||||
}
|
||||
keyBlock = p;
|
||||
|
@ -1448,7 +1455,7 @@ int CmdHF14AMfELoad(const char *Cmd)
|
|||
|
||||
len = param_getstr(Cmd,nameParamNo,filename);
|
||||
|
||||
if (len > FILE_PATH_SIZE - 4) len = FILE_PATH_SIZE - 4;
|
||||
if (len > FILE_PATH_SIZE - 5) len = FILE_PATH_SIZE - 5;
|
||||
|
||||
fnameptr += len;
|
||||
|
||||
|
@ -1547,7 +1554,7 @@ int CmdHF14AMfESave(const char *Cmd)
|
|||
|
||||
len = param_getstr(Cmd,nameParamNo,filename);
|
||||
|
||||
if (len > FILE_PATH_SIZE - 4) len = FILE_PATH_SIZE - 4;
|
||||
if (len > FILE_PATH_SIZE - 5) len = FILE_PATH_SIZE - 5;
|
||||
|
||||
// user supplied filename?
|
||||
if (len < 1) {
|
||||
|
@ -1823,7 +1830,7 @@ int CmdHF14AMfCLoad(const char *Cmd)
|
|||
return 0;
|
||||
} else {
|
||||
len = strlen(Cmd);
|
||||
if (len > FILE_PATH_SIZE - 4) len = FILE_PATH_SIZE - 4;
|
||||
if (len > FILE_PATH_SIZE - 5) len = FILE_PATH_SIZE - 5;
|
||||
|
||||
memcpy(filename, Cmd, len);
|
||||
fnameptr += len;
|
||||
|
@ -1864,6 +1871,7 @@ int CmdHF14AMfCLoad(const char *Cmd)
|
|||
|
||||
if (mfCSetBlock(blockNum, buf8, NULL, 0, flags)) {
|
||||
PrintAndLog("Can't set magic card block: %d", blockNum);
|
||||
fclose(f);
|
||||
return 3;
|
||||
}
|
||||
blockNum++;
|
||||
|
@ -1992,7 +2000,7 @@ int CmdHF14AMfCSave(const char *Cmd) {
|
|||
return 0;
|
||||
} else {
|
||||
len = strlen(Cmd);
|
||||
if (len > FILE_PATH_SIZE - 4) len = FILE_PATH_SIZE - 4;
|
||||
if (len > FILE_PATH_SIZE - 5) len = FILE_PATH_SIZE - 5;
|
||||
|
||||
if (len < 1) {
|
||||
// get filename
|
||||
|
@ -2112,11 +2120,14 @@ int CmdHF14AMfSniff(const char *Cmd){
|
|||
uint16_t traceLen = resp.arg[1];
|
||||
len = resp.arg[2];
|
||||
|
||||
if (res == 0) return 0; // we are done
|
||||
if (res == 0) { // we are done
|
||||
free(buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (res == 1) { // there is (more) data to be transferred
|
||||
if (pckNum == 0) { // first packet, (re)allocate necessary buffer
|
||||
if (traceLen > bufsize) {
|
||||
if (traceLen > bufsize || buf == NULL) {
|
||||
uint8_t *p;
|
||||
if (buf == NULL) { // not yet allocated
|
||||
p = malloc(traceLen);
|
||||
|
|
|
@ -274,7 +274,7 @@ int CmdTIWrite(const char *Cmd)
|
|||
UsbCommand c = {CMD_WRITE_TI_TYPE};
|
||||
int res = 0;
|
||||
|
||||
res = sscanf(Cmd, "%012" PRIx64 " %012" PRIx64 " %012" PRIx64 "", &c.arg[0], &c.arg[1], &c.arg[2]);
|
||||
res = sscanf(Cmd, "%012" SCNx64 " %012" SCNx64 " %012" SCNx64 "", &c.arg[0], &c.arg[1], &c.arg[2]);
|
||||
|
||||
if (res == 2) c.arg[2]=0;
|
||||
if (res < 2)
|
||||
|
|
|
@ -1,9 +1,4 @@
|
|||
#define __STDC_FORMAT_MACROS
|
||||
#include <inttypes.h>
|
||||
#define llx PRIx64
|
||||
#define lli PRIi64
|
||||
|
||||
// Test-file: test2.c
|
||||
#include "crapto1.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -62,7 +57,7 @@ int main (int argc, char *argv[]) {
|
|||
crypto1_word(t, uid ^ nt, 0);
|
||||
crypto1_word(t, nr1_enc, 1);
|
||||
if (ar1_enc == (crypto1_word(t, 0, 0) ^ prng_successor(nt, 64))) {
|
||||
printf("\nFound Key: [%012"llx"]\n\n",key);
|
||||
printf("\nFound Key: [%012" PRIx64 "]\n\n",key);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,4 @@
|
|||
#define __STDC_FORMAT_MACROS
|
||||
#include <inttypes.h>
|
||||
#define llx PRIx64
|
||||
#define lli PRIi64
|
||||
|
||||
// Test-file: test2.c
|
||||
#include "crapto1.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
@ -103,7 +98,7 @@ int main (int argc, char *argv[]) {
|
|||
lfsr_rollback_word(revstate, nr_enc, 1);
|
||||
lfsr_rollback_word(revstate, uid ^ nt, 0);
|
||||
crypto1_get_lfsr(revstate, &key);
|
||||
printf("\nFound Key: [%012"llx"]\n\n",key);
|
||||
printf("\nFound Key: [%012" PRIx64"]\n\n",key);
|
||||
crypto1_destroy(revstate);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
#include "crapto1.h"
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#include <inttypes.h>
|
||||
#define llx PRIx64
|
||||
#include <stdio.h>
|
||||
typedef unsigned char byte_t;
|
||||
|
||||
|
@ -20,13 +18,13 @@ int main(const int argc, const char* argv[]) {
|
|||
}
|
||||
sscanf(argv[1],"%08x",&uid);
|
||||
sscanf(argv[2],"%08x",&nt);
|
||||
sscanf(argv[3],"%016"llx,&par_info);
|
||||
sscanf(argv[4],"%016"llx,&ks_info);
|
||||
sscanf(argv[3],"%016" SCNx64,&par_info);
|
||||
sscanf(argv[4],"%016" SCNx64,&ks_info);
|
||||
|
||||
// Reset the last three significant bits of the reader nonce
|
||||
nr &= 0xffffff1f;
|
||||
|
||||
printf("\nuid(%08x) nt(%08x) par(%016"llx") ks(%016"llx")\n\n",uid,nt,par_info,ks_info);
|
||||
printf("\nuid(%08x) nt(%08x) par(%016" PRIx64 ") ks(%016" PRIx64 ")\n\n",uid,nt,par_info,ks_info);
|
||||
|
||||
for (pos=0; pos<8; pos++)
|
||||
{
|
||||
|
@ -52,7 +50,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: %012"llx"\n\n",key_recovered);
|
||||
printf("\nkey recovered: %012" PRIx64 "\n\n",key_recovered);
|
||||
crypto1_destroy(state);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue