X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/9827020ac56300222a2bdabfc1858b8347345ca4..ce9a7cbf33ff29722d7e7f6adec4fe149f55ce87:/client/util.c diff --git a/client/util.c b/client/util.c index 2bc5b2ba..ae8e4fec 100644 --- a/client/util.c +++ b/client/util.c @@ -104,14 +104,18 @@ void print_hex(const uint8_t * data, const size_t len) { printf("\n"); } void print_hex_break(const uint8_t *data, const size_t len, uint8_t breaks) { - size_t i; - for ( i = 0; i < len; ++i) { + + int rownum = 0; + printf("[%02d] | ", rownum); + for (int i = 0; i < len; ++i) { printf("%02X ", data[i]); // check if a line break is needed - if ( (breaks > 0) && (i > 0) && !(i % breaks) ) - printf("\n"); + if ( breaks > 0 && !((i+1) % breaks) && (i+1 < len) ) { + ++rownum; + printf("\n[%02d] | ", rownum); + } } printf("\n"); } @@ -131,8 +135,10 @@ char *sprint_hex(const uint8_t *data, const size_t len) { } char *sprint_bin_break(const uint8_t *data, const size_t len, const uint8_t breaks) { + // make sure we don't go beyond our char array memory - int max_len; + size_t in_index = 0, out_index = 0; + int max_len; if (breaks==0) max_len = ( len > MAX_BIN_BREAK_LENGTH ) ? MAX_BIN_BREAK_LENGTH : len; else @@ -143,20 +149,20 @@ char *sprint_bin_break(const uint8_t *data, const size_t len, const uint8_t brea memset(buf, 0x00, sizeof(buf)); char *tmp = buf; - size_t in_index = 0; // loop through the out_index to make sure we don't go too far - for (size_t out_index=0; out_index < max_len-2; out_index++) { + for (out_index=0; out_index < max_len-2; out_index++) { // set character - sprintf(tmp++, "%u", data[in_index]); + sprintf(tmp++, "%u", (unsigned int) data[in_index]); // check if a line break is needed and we have room to print it in our array if ( (breaks > 0) && !((in_index+1) % breaks) && (out_index+1 != max_len) ) { // increment and print line break out_index++; sprintf(tmp++, "%s","\n"); - } + } in_index++; } - + // last char. + sprintf(tmp++, "%u", (unsigned int) data[in_index]); return buf; }