Reply to Re: Decompilers needed
If you don't have an account, just leave the password field blank.
The decompiler has been sent to both of you. A little warning, though, it doesn't work on overy computer because I think I accidentally used the wrong parameters when compiling it (sorry). I am unable to recompile it right now (I will try to so soon.
Here's the source code, if anyone's interested :
(As a sidenote, Philip Gage's script required quite a bit of tweaking to make it work
.)
Here's the source code, if anyone's interested :
/* expand.c -- Byte Pair Encoding decompression */
/* Copyright 1996 Philip Gage */
#include <stdio.h>
void decompress (FILE *in, FILE *out)
{ unsigned char stack[16], pair[128][2]; short c, top = 0;
/* Check for optional pair count and pair table */ if ((c = getc(in)) > 127) fread(pair,2,c-128,in); else putc(c,out);
for (;
{
/* Pop byte from stack or read byte from file */ if (top) c = stack[--top]; else if ((c = getc(in)) == EOF) break; /* Push pair on stack or output byte to file */ if (c > 127) { stack[top++] = pair[c-128][1]; stack[top++] = pair[c-128][0]; } else putc(c,out); }
}
int main (int argc, char **argv)
{ FILE *in, *out;
char crap[100];
char crap2[100];
printf("\nDinkC Decompiler V1.00 - Ducklord\n\n");
if (argc > 1)
{
//printf("Char is %c",argv[1][strlen(argv[1])-2]); if (argv[1][strlen(argv[1])-2] != '.')
{ strcpy(crap, argv[1]);
strcat(crap, ".d");
strcpy(crap2, argv[1]);
strcat(crap2, ".c");
} else
{
strcpy(crap, argv[1]);
strcpy(crap2, argv[1]);
crap2[strlen(crap2)-1] = 'c';
}
}
if (argc != 2) printf("Usage: decompile crap [.d] (a file called crap.c will be made)\n"); else if ((in=fopen(crap,"rb"))==NULL) printf("Error opening input %s\n",crap); else if ((out=fopen(crap2,"wb"))==NULL) printf("Error opening output %s\n",crap2); else { printf("Creating %s....", crap2); decompress(in,out); fclose(out); fclose(in); printf("Done!\n");
} return 0;
}(As a sidenote, Philip Gage's script required quite a bit of tweaking to make it work






