// // reverse // // dumb program to reverse the bytes in a file; for a lame // layer of obfuscation or something like that // #include const int BLOCK_SIZE = 4096; int main(int argc, char* argv[]) { if (argc < 3) { printf("Usage: %s \n"); return 1; } FILE* infp = fopen(argv[1], "rb"); if (infp == 0) { fprintf(stderr, "Unable to open \"%s\"\n", argv[1]); return 1; } FILE* outfp = fopen(argv[2], "wb"); if (outfp == 0) { fclose(infp); fprintf(stderr, "Unable to open \"%s\"\n", argv[2]); return 1; } while (!feof(infp)) { char block[BLOCK_SIZE]; char revblock[BLOCK_SIZE]; size_t i, j; size_t numread = fread(block, 1, BLOCK_SIZE, infp); for (i = 0; i < numread; i++) revblock[numread - i - 1] = block[i]; if (fwrite(revblock, numread, 1, outfp) != numread) { fprintf(stderr, "Error writing to output file\n"); break; } } fclose(infp); fclose(outfp); return 0; }