Undefined пишет: Судя по всему сие хоз-во используется для разбора параметров командной строки И я вляется творением кого-то третьего, либо самого автора...
Совершенно верно, вместе с netcat идут исходники, и там есть такие файлы getopt.c и getopt.h
Не могу откомпилировать под Cygwin, пишет ошибок 20 типа undefined reference to '_WNetAddConnection2A@16' и все из-за winsock2.h В чем дело и как поправить? Язык си знаю не очень если можно поподробнее.
Компилил на VC7, причем если в дебаге компилять то слетает с ошибкой при поппытке запуска с параметром -h Если откомпилить в релиз-варианте, то вот что: Пытаюсь я зацепиться на англ Win2k SP4.
-> 'Connecting' mode... -> Setting up $IPC session...(aka 'null session') -> IPC$ session setup successfully... -> Sending exploit string... -> Will try connecting to shell now.... -> Trial #0.... -> Trial #1.... -> Trial #2.... -> Trial #3.... -> WM_TIMER received... -> I give up...dude.....
Что нужно сделать чтоб компилился на VC6?? Эти файлы getopt.c и getopt.h нашел. Но все равно выходит: Linking... eks.obj : error LNK2001: unresolved external symbol _optarg eks.obj : error LNK2001: unresolved external symbol _getopt Debug/eks.exe : fatal error LNK1120: 2 unresolved externals Error executing link.exe. eks.exe - 3 error(s), 0 warning(s) . Это не для cygwin
if (pIndexPosition != NULL) { if (*(++pIndexPosition)) { pArgString = pIndexPosition; } }
if (pArgString == NULL) { if (optind >= argc) { pIndexPosition = NULL; /* not in the middle of anything */ return EOF; &n bsp; /* used up all command-line arguments */ } pArgString = argv[optind++]; /* set this to the next argument ptr */
if (('/' != *pArgString) && ('-' != *pArgString)) { --optind; &nb sp; /* point to current arg once we're done */ optarg = NULL; & nbsp;/* no argument follows the option */ pIndexPosition = NULL; /* not in the middle of anything */ return EOF; &n bsp; /* used up all the command-line flags */ }
if ((strcmp(pArgString, "-") == 0) || (strcmp(pArgString, "--") == 0)) { optarg = NULL; & nbsp;/* no argument follows the option */ pIndexPosition = NULL; /* not in the middle of anything */ return EOF; &n bsp; /* encountered the special flag */ }
pArgString++;   ; /* look past the / or - */ }
if (':' == *pArgString) {   ; return (opterr ? (int)'?' : (int)':'); } else if ((pOptString = strchr(opstring, *pArgString)) == 0) { optarg = NULL; & nbsp; /* no argument follows the option */ pIndexPosition = NULL; /* not in the middle of anything */ return (opterr ? (int)'?' : (int)*pArgString); } else { if (':' == _next_char(pOptString)) { if ('\0' != _next_char(pArgString)) optarg = &pArgString[1]; else { if (optind < argc) optarg = argv[optind++]; else { optarg = NULL; return (opterr ? (int)'?' : (int)*pArgString); } } pIndexPosition = NULL; /* not in the middle of anything */ } else { optarg = NULL; & nbsp;/* no argument follows the option */ pIndexPosition = pArgString; /* point to the letter we're on */ } return (int)*pArgString; /* return the letter that matched */ } }
куда вставить догадаетесь. Хотя эксплоит все равно сырой и не в рабочем виде