undump
ダンプはバイナリを2桁の16進数文字列のアスキーに変換するけれど、
その逆に、2桁の16進数文字列からバイナリに戻すツール。
#include#include #include int main(int argc, char* argv[]) { fprintf(stderr, "undump version 1.00\n"); fprintf(stderr, "Copyright (C) Yoshinori Watanabe 2005. All Rights Reserved.\n\n"); if (argc != 3) { printf("usage: undump [txt-file] [bin-file]\n"); exit(-1); } FILE* in = fopen(argv[1], "rt"); if (in == NULL) exit(-2); FILE* out = fopen(argv[2], "wb"); if (out == NULL) { fclose(in); exit(-3); } while (! feof(in)) { char buf[4096]; char* p = fgets(buf, sizeof(buf), in); if (p == NULL) break; p = strtok(buf, " "); while (p != NULL) { char* err = NULL; int value = strtol(p, &err, 16); fwrite(&value, 1, 1, out); p = strtok(NULL, " "); } } fclose(in); fclose(out); return 0; }
以前も同じツールを作ったんだけれど、欲しいときに手元になかったので、
即席で作っちゃいました。