/* find lh5 in a file - Copyright Michael John Wensley */ #include #include #include #include #include #include #include #include #include #include #include int main(argc, argv, envp) int argc; char *argv[]; char *envp[]; { int fd; int p = 0; char header[5]; char filename[13]; char *lha = "-lh5-"; fd = open(argv[1], 0); int prevp = 2; filename[12] = 0; while (read(fd, header, 5) == 5) { if (memcmp(header, lha, 5) == 0) { if (prevp != 2) { printf(" count=%d", p - prevp - 2); } printf("\n"); prevp = p - 2; lseek(fd, p+0x14, SEEK_SET); read(fd, filename, 12); printf("dd if=%s of=%s bs=1 skip=%d", argv[1], filename, p - 2); } lseek(fd, ++p, SEEK_SET); } close(fd); }