#include #include #include "util.h" void xxd(const void *buf_, size_t length) { unsigned char *buf = (unsigned char*)buf_; for (size_t cursor = 0; cursor < length;) { printf("%08zx:", cursor); for (int i = 0; i < 16; i++) { if (i % 2 == 0) printf(" "); if (i % 8 == 0) printf(" "); if (cursor + i < length) printf("%02x", (unsigned)buf[cursor + i]); else printf(" "); } printf(" |"); for (int i = 0; i < 16 && cursor + i < length; i++) { if (isprint(buf[cursor + i])) printf("%c", buf[cursor + i]); else printf("."); } printf("|\n"); cursor += 16; } }