From a3a28442828955b3a2452f11736fe7a09cfd8205 Mon Sep 17 00:00:00 2001 From: cora32 Date: Sat, 7 Mar 2015 20:31:48 +0300 Subject: [PATCH] Massive refactoring. --- Connector.cpp | 16 +-- Connector.h | 10 +- DrawerTh_HorNet.h | 1 - DrawerTh_ME2Scanner.cpp | 42 ++++--- DrawerTh_ME2Scanner.h | 6 +- Utils.cpp | 4 +- Utils.h | 14 ++- WebformWorker.h | 6 +- connector_old.cpp | 8 +- externFunctions.h | 8 +- finder.cpp | 272 +++++++--------------------------------- main.cpp | 18 +-- mainResources.h | 7 +- negatives.txt | 116 ++++++++++++++--- nesca_3.cpp | 174 ++++++++++--------------- nesca_3.h | 7 +- nesca_3.ui | 16 +-- nesca_startModule.cpp | 1 + oIRC_Th.cpp | 1 - 19 files changed, 291 insertions(+), 436 deletions(-) diff --git a/Connector.cpp b/Connector.cpp index 8721bfe..b75438e 100644 --- a/Connector.cpp +++ b/Connector.cpp @@ -1,5 +1,4 @@ #include -#include #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) int _pingMyTarget(char *ip) @@ -34,7 +33,6 @@ int _pingMyTarget(char *ip) return 0; } - dwRetVal = IcmpSendEcho(hIcmpFile, ipaddr, SendData, sizeof(SendData), NULL, ReplyBuffer, ReplySize, gPingTimeout*1000); if (dwRetVal != 0) { @@ -196,7 +194,7 @@ int _EstablishSSHConnection(char *host, int port, std::string *buffer, const cha if(i == 0) return -2; //Failhit BConDec(); isActive = 0; - return 0; + return 1; } else if(res == -2) { @@ -384,18 +382,8 @@ int Connector::_ConnectToPort(char *ip, int port, char *hl) ++Alive; ++found; stt->doEmitionChangeParsed(QString::number(saved) + "/" + QString::number(found)); - - conSTR CSTR; - CSTR.lowerBuff = new char[size + 1]; - CSTR.size = size; - memcpy(CSTR.lowerBuff, buffer.c_str(), size); - memset(CSTR.lowerBuff + size, '\0', 1); - Lexems lx; - lx._filler(port, (char *)buffer.c_str(), ip, size, &lx, hl); - - delete []CSTR.lowerBuff; - CSTR.lowerBuff = NULL; + lx._filler(port, buffer.c_str(), ip, size, &lx, hl); }; return 0; diff --git a/Connector.h b/Connector.h index 86fc85e..4c6d3ca 100644 --- a/Connector.h +++ b/Connector.h @@ -1,9 +1,17 @@ #ifndef CONNECTOR_H #define CONNECTOR_H -#include #include #include +#include + +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) +#include +#include +#pragma comment(lib, "iphlpapi.lib") +#pragma comment(lib,"curllib.lib") +#endif +#include class Connector { diff --git a/DrawerTh_HorNet.h b/DrawerTh_HorNet.h index 5279c18..25649dd 100644 --- a/DrawerTh_HorNet.h +++ b/DrawerTh_HorNet.h @@ -1,7 +1,6 @@ #ifndef DRAWERTH_HORNET_H #define DRAWERTH_HORNET_H -#pragma once #include "nesca_3.h" class DrawerTh_HorNet : public QThread diff --git a/DrawerTh_ME2Scanner.cpp b/DrawerTh_ME2Scanner.cpp index cdda4a0..8325b01 100644 --- a/DrawerTh_ME2Scanner.cpp +++ b/DrawerTh_ME2Scanner.cpp @@ -3,6 +3,9 @@ #include "externData.h" #include +QList DrawerTh_ME2Scanner::itmList; +QVector DrawerTh_ME2Scanner::polyVect; + void DrawerTh_ME2Scanner::doEmitDrawTextPlacers() { emit dtME2->sDrawTextPlacers(); @@ -15,12 +18,12 @@ void DrawerTh_ME2Scanner::doEmitionAddPolyLine() void MakePolygonLine(int gWidth) { - vect.clear(); + DrawerTh_ME2Scanner::polyVect.clear(); int x = 0; int tx = 0; int xtx = 0; - QPointF qp(0, 20); - vect.append(qp); + QPointF qp(0, ME2YPOS); + DrawerTh_ME2Scanner::polyVect.append(qp); int fact1 = 0, fact2 = 0, fact3 = 0, @@ -36,7 +39,7 @@ void MakePolygonLine(int gWidth) xtx = x + tx; if(xtx > 1 && xtx < 31) { - qp = QPointF(xtx, state ? qrand() % 3 - 3 + 20 - AnomC1*2 - fact1 : 20); + qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - AnomC1 * 2 - fact1 : ME2YPOS); if(AnomC1 > 0) { if(xtx < 16 ) fact1+=2; @@ -46,7 +49,7 @@ void MakePolygonLine(int gWidth) if(xtx > 34 && xtx < 72) { - qp = QPointF(xtx, state ? qrand() % 3 - 3 + 20 - WF*2 - fact2 : 20); + qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - WF * 2 - fact2 : ME2YPOS); if(WF > 0) { @@ -57,7 +60,7 @@ void MakePolygonLine(int gWidth) if(xtx > 74 && xtx < 112) { - qp = QPointF(xtx, state ? qrand() % 3 - 3 + 20 - BA*2 - fact3 : 20); + qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - BA * 2 - fact3 : ME2YPOS); if(BA > 0) { @@ -68,7 +71,7 @@ void MakePolygonLine(int gWidth) if(xtx > 114 && xtx < 152) { - qp = QPointF(xtx, state ? qrand() % 3 - 3 + 20 - Susp*2 - fact4 : 20); + qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - Susp * 2 - fact4 : ME2YPOS); if(Susp > 0) { @@ -79,7 +82,7 @@ void MakePolygonLine(int gWidth) if(xtx > 154 && xtx < 192) { - qp = QPointF(xtx, state ? qrand() % 3 - 3 + 20 - Overl*2 - fact5 : 20); + qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - Overl * 2 - fact5 : ME2YPOS); if(Overl > 0) { @@ -90,7 +93,7 @@ void MakePolygonLine(int gWidth) if(xtx > 194 && xtx < 232) { - qp = QPointF(xtx, state ? qrand() % 3 - 3 + 20 - Lowl*2 - fact6 : 20); + qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - Lowl * 2 - fact6 : ME2YPOS); if(Lowl > 0) { @@ -101,7 +104,7 @@ void MakePolygonLine(int gWidth) if(xtx > 234 && xtx < 269) { - qp = QPointF(xtx, state ? qrand() % 3 - 3 + 20 - Alive*2 - fact7 : 20); + qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - Alive * 2 - fact7 : ME2YPOS); if(Alive > 0) { @@ -110,9 +113,10 @@ void MakePolygonLine(int gWidth) }; }; - vect.append(qp); + DrawerTh_ME2Scanner::polyVect.append(qp); tx = x; }; + AnomC1 = 0; WF = 0; BA = 0; @@ -121,19 +125,23 @@ void MakePolygonLine(int gWidth) Lowl = 0; Alive = 0; Susp = 0; - vect.append(QPointF(gWidth, 20)); + + DrawerTh_ME2Scanner::polyVect.append(QPointF(gWidth, ME2YPOS)); } void DrawerTh_ME2Scanner::run() { int gWidth = ui->graphicLog->width(); dtME2->doEmitDrawTextPlacers(); + while(ME2ScanFlag) { - if(widgetIsHidden == false && tray->isVisible() == false) + if (widgetIsHidden == false && tray->isVisible() == false) { - MakePolygonLine(gWidth); - dtME2->doEmitionAddPolyLine(); + if (itmList.count() < 39) { + MakePolygonLine(gWidth); + dtME2->doEmitionAddPolyLine(); + } } else { @@ -147,6 +155,8 @@ void DrawerTh_ME2Scanner::run() Alive = 0; Susp = 0; }; - msleep(90); + msleep(100); }; + + itmList.clear(); } diff --git a/DrawerTh_ME2Scanner.h b/DrawerTh_ME2Scanner.h index 0e1eda0..397d2f8 100644 --- a/DrawerTh_ME2Scanner.h +++ b/DrawerTh_ME2Scanner.h @@ -1,7 +1,8 @@ #ifndef DRAWERTH_ME2SCANNER_H #define DRAWERTH_ME2SCANNER_H -#pragma once +#define ME2YPOS 100 +#define ME2GRADPOS 10 #include "STh.h" class DrawerTh_ME2Scanner : public QThread @@ -9,6 +10,9 @@ class DrawerTh_ME2Scanner : public QThread Q_OBJECT public: + static QList itmList; + static QVector polyVect; + static void doEmitionAddPolyLine(); static void doEmitDrawTextPlacers(); diff --git a/Utils.cpp b/Utils.cpp index a8f376a..6f89b4c 100644 --- a/Utils.cpp +++ b/Utils.cpp @@ -1,10 +1,11 @@ #include char *getSystemProxy() { - + return ""; } int Utils::getProxyPort() { + return 0; } char * Utils::getProxy() { @@ -12,4 +13,5 @@ char * Utils::getProxy() { #else getSystemProxy(); #endif + return ""; } diff --git a/Utils.h b/Utils.h index d5201b1..647bde6 100644 --- a/Utils.h +++ b/Utils.h @@ -4,14 +4,20 @@ #include #include +using namespace std; + template struct my_equal { - my_equal( const std::locale loc ) : loc_(loc) {} + my_equal( const locale loc ) : loc_(loc) {} bool operator()(charT ch1, charT ch2) { - return std::toupper(ch1, loc_) == std::toupper(ch2, loc_); +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) + return toupper(ch1) == toupper(ch2); +#else + return toupper(ch1, loc_) == toupper(ch2, loc_); +#endif } private: - const std::locale& loc_; + const locale& loc_; }; class Utils { @@ -19,7 +25,7 @@ public: // find substring (case insensitive) template static int ci_find_substr(const T& str1, const T& str2, - const std::locale& loc = std::locale()) { + const locale& loc = locale()) { auto it = std::search(str1.begin(), str1.end(), str2.begin(), str2.end(), my_equal(loc)); diff --git a/WebformWorker.h b/WebformWorker.h index 33efaef..b01fd95 100644 --- a/WebformWorker.h +++ b/WebformWorker.h @@ -1,12 +1,12 @@ #ifndef WEBFORMWORKER_H #define WEBFORMWORKER_H -#include -#include -#include #include #include "STh.h" #include "Connector.h" +#include +#include +#include class WFClass { diff --git a/connector_old.cpp b/connector_old.cpp index f64cc0c..0d3140f 100644 --- a/connector_old.cpp +++ b/connector_old.cpp @@ -270,10 +270,10 @@ char *_getAttributeValue(char *str, char *val, char *ip, int port) if(ptrStart != NULL) { if(strstri(ptrStart, "qop=auth") != NULL) return "auth"; - ptrS1End = _findFirst(ptrStart, "\""); +// ptrS1End = _findFirst(ptrStart, "\""); if(ptrS1End != NULL) { - ptrS2End = _findFirst(ptrS1End + 1, "\""); +// ptrS2End = _findFirst(ptrS1End + 1, "\""); if(ptrS2End != NULL) { int sz = ptrS2End - ptrS1End - 1; @@ -599,7 +599,7 @@ lopaStr _BABrute(char *cookie, char *ip, int port, char *pathT, char *method) if (strcmp(method, "[DIGEST]") == 0 && strstr(localBuff, "nonce=") != NULL) { ZeroMemory(attribute, sizeof(attribute)); - strcpy(attribute, _getAttribute(localBuff, "WWW-Authenticate:")); +// strcpy(attribute, _getAttribute(localBuff, "WWW-Authenticate:")); ZeroMemory(nonce, sizeof(nonce)); strcpy(nonce, _getAttributeValue(attribute, "nonce=", ip, port)); ZeroMemory(realm, sizeof(realm)); @@ -888,7 +888,7 @@ lopaStr _BABrute(char *cookie, char *ip, int port, char *pathT, char *method) if(strstr(recvBuff, "Set-Cookie:") != NULL) { ZeroMemory(cookie, COOKIE_MAX_SIZE); - strncpy(cookie, _getAttribute(recvBuff, "Set-Cookie:"), COOKIE_MAX_SIZE); +// strncpy(cookie, _getAttribute(recvBuff, "Set-Cookie:"), COOKIE_MAX_SIZE); cookieLen = strlen(cookie); }; }; diff --git a/externFunctions.h b/externFunctions.h index 2cb8cf9..9284c7e 100644 --- a/externFunctions.h +++ b/externFunctions.h @@ -1,3 +1,6 @@ +#ifndef EF_H +#define EF_H + extern std::string toLowerStr(const char *str); extern int recvS(int lSock, char *recvBuffT, int len); extern int sendS(int lSock, char *msg, int len, int mode); @@ -9,11 +12,12 @@ extern void BConDec(); extern QString GetNSErrorDefinition(const char *str, const char *defin); extern void _SaveBackupToFile(); extern char* strstri(const char *_Str, const char *_SubStr); -extern char* _getAttribute(char *str, char *attrib); -extern char *_findFirst(char *str, char *delim); extern void nCleanup(); extern void getSubStr(char *src, char *startStr, char *endStr, char *dest, int szDest); extern void getSubStrEx(char *src, char *startStr, char *endStr, char *dest, int szDest); extern std::string xcode(LPCSTR src, UINT srcCodePage, UINT dstCodePage); extern void _SaveBackupToFile(); //extern int nConnect(char *ip, int port, std::string *buffer); + + +#endif // EF_H diff --git a/finder.cpp b/finder.cpp index 6e20675..9e1f868 100644 --- a/finder.cpp +++ b/finder.cpp @@ -23,7 +23,7 @@ char* strstri(const char *_Str, const char *_SubStr) } bool gGlobalTrackLocked = false; -char *_findFirst(char *str, char *delim) +char *_findFirst(const char *str, char *delim) { int sz = strlen(str); int dsz = strlen(delim); @@ -54,8 +54,7 @@ char *_findLast(char *str, char *delim) return (char *)(str + savedPosition); } - -char *GetCodePage(char *str) +char *GetCodePage(const char *str) { char cdpg[32] = {0}; char *ptr1 = strstri(str, "%s:%d T: %s Pass: %s:%s\n" + , ip, port, ip, port, finalstr, login, pass); strcpy(log, "[WF]:"); strcat(log, " vecUser (arrUser, arrUser + sizeof(arrUser) / sizeof(ar static const std::string arrPass[] = {"pass", "pw", "password", "code", "param2", "param4", "secret", "login_p", "A2", "admin_pw", "pws", "secretkey"}; std::vector vecPass (arrPass, arrPass + sizeof(arrPass) / sizeof(arrPass[0]) ); -char *_getAttribute(char *str, char *attrib) +char *_getAttribute(const char *str, char *attrib) { if(strstri(str, attrib) != NULL) { @@ -1347,11 +1347,12 @@ void _specBrute(char *cookie, char *ip, int port, char *hl, char *finalstr, int ZeroMemory(temp, sizeof(temp)); } -const char *GetTitle(char* str) +const char *GetTitle(const char* str) { char delimiterT[] = ""; char delimiterT2[] = "<title id=\"title\">"; - char *firstStr, *secondStr, finalstr[512] = {0}; + const char *firstStr, *secondStr; + char finalstr[512] = { 0 }; if (strstri(str, "realm") != NULL) { @@ -1462,7 +1463,7 @@ const char *GetTitle(char* str) return finalstr; } -void _saveSSH(char *ip, int port, int recd, char *buffcpy) +void _saveSSH(char *ip, int port, int recd, const char *buffcpy) { if(buffcpy != NULL) { @@ -1471,7 +1472,7 @@ void _saveSSH(char *ip, int port, int recd, char *buffcpy) char goodStr[256] = {0}; char banner[256] = {0}; - char *ptr1 = strstr(buffcpy, "|+|"); + const char *ptr1 = strstr(buffcpy, "|+|"); if(ptr1 != NULL) { int gsz = ptr1 - buffcpy; @@ -1482,31 +1483,15 @@ void _saveSSH(char *ip, int port, int recd, char *buffcpy) sprintf(log, "[SSH] <font color=\"#00a8ff\"> %s:%d </font><font color=\"#323232\">; Banner:</font> <font color=\"#9cff00\"> %s </font>", goodStr, port, banner); sprintf(logEmit, "[SSH] <span style=\"color: #00a8ff;\"> %s:%d </span>", goodStr, port); -// strcpy(log, "[SSH] <font color=\"#00a8ff\">"); -// strcat(log, goodStr); -// strcat(log, ":"); -// strcat(log, itoa(port, b, 10)); -// strcat(log, "</font>"); -// strcat(log, "<font color=\"#323232\">; Banner:</font> <font color=\"#9cff00\">"); -// strcat(log, banner); -// strcat(log, "</font>"); - ++PieSSH; -// strcpy(logEmit, "[SSH] "); -// strcat(logEmit, "<span style=\"color: #00a8ff;\">"); -// strcat(logEmit, goodStr); -// strcat(logEmit, ":"); -// strcat(logEmit, itoa(port, b, 10)); -// strcat(logEmit, "</span>"); - fputsf (log, -22, "SSH"); char loginSSH[128] = {0}; char passSSH[128] = {0}; - char *ptrl1 = strstr(buffcpy, ":"); + const char *ptrl1 = strstr(buffcpy, ":"); int lpsz = ptrl1 - buffcpy; strncpy(loginSSH, buffcpy, lpsz); - char *ptrl2 = strstr(buffcpy, "@"); + const char *ptrl2 = strstr(buffcpy, "@"); lpsz = ptrl2 - ptrl1; strncpy(passSSH, ptrl1 + 1, lpsz); fillGlobalLogData(ip, "", portString, std::to_string(recd).c_str(), "[SSH service]", loginSSH, passSSH, "NULL", "UTF-8", "SSH"); @@ -1523,9 +1508,8 @@ void _saveSSH(char *ip, int port, int recd, char *buffcpy) }; } -int Lexems::_filler(int p, char* buffcpy, char* ip, int recd, Lexems *lx, char *hl) +int Lexems::_filler(int p, const char* buffcpy, char* ip, int recd, Lexems *lx, char *hl) { - if( strstr(buffcpy, "[IGNR_ADDR]") != NULL ) return -1; if( strstr(buffcpy, "SSH-2.0-OpenSSH") != NULL || strstr(buffcpy, "SSH-2.0-mod_sftp") != NULL) { std::string sshBuff; @@ -1596,7 +1580,7 @@ int Lexems::_filler(int p, char* buffcpy, char* ip, int recd, Lexems *lx, char * sprintf(port, "%d", p); if(strstr(finalstr, ps.headr) == NULL) strcat(finalstr, ps.headr); - if(flag == -1 || flag == 6 || strstr(finalstr, "[IGNR_ADDR]") != NULL) return -1; + if(flag == -1 || flag == 6) return -1; if(flag == 16) { @@ -2012,7 +1996,6 @@ int redirectReconnect(char *cookie, char *ip, int port, char *str, Lexems *ls, P if(ls->flag == -1) { ps->flag = -1; - strcpy(ps->headr, "[IGNR_ADDR]"); strcpy(ps->path, tempPath); return -1; @@ -2040,7 +2023,6 @@ int redirectReconnect(char *cookie, char *ip, int port, char *str, Lexems *ls, P if (ls->_header(tempIP, tempPort, buff, ls, ps, redirStrLst, buff) == -1) { ps->flag = -1; - strcpy(ps->headr, "[IGNR_ADDR]"); strcpy(ps->path, tempPath); return -1; @@ -2133,7 +2115,6 @@ int redirectReconnect(char *cookie, char *ip, int port, char *str, Lexems *ls, P if(ls->flag == -1) { ps->flag = -1; - strcpy(ps->headr, "[IGNR_ADDR]"); strcpy(ps->path, tempPath); return -1; @@ -2162,7 +2143,6 @@ int redirectReconnect(char *cookie, char *ip, int port, char *str, Lexems *ls, P if (ls->_header(tempIP, tempPort, buff, ls, ps, redirStrLst, buff) == -1) { ps->flag = -1; - strcpy(ps->headr, "[IGNR_ADDR]"); strcpy(ps->path, tempPath); return -1; @@ -2210,7 +2190,6 @@ int redirectReconnect(char *cookie, char *ip, int port, char *str, Lexems *ls, P if(ls->flag == -1) { ps->flag = -1; - strcpy(ps->headr, "[IGNR_ADDR]"); strcpy(ps->path, tempPath); return -2; @@ -2240,7 +2219,6 @@ int redirectReconnect(char *cookie, char *ip, int port, char *str, Lexems *ls, P if (ls->_header(tempIP, tempPort, buff, ls, ps, redirStrLst, buff) == -1) { ps->flag = -1; - strcpy(ps->headr, "[IGNR_ADDR]"); strcpy(ps->path, tempPath); return -1; @@ -2282,7 +2260,6 @@ int redirectReconnect(char *cookie, char *ip, int port, char *str, Lexems *ls, P if(ls->flag == -1) { ps->flag = -1; - strcpy(ps->headr, "[IGNR_ADDR]"); strcpy(ps->path, tempPath); return -1; @@ -2458,7 +2435,7 @@ void _getLinkFromJSLocation(char *dataBuff, char *str, char *tag, char *ip, int }; } -void _getJSCookie(char *dataBuff, char *str, char *ip, int port) +void _getJSCookie(char *dataBuff, const char *str, char *ip, int port) { char *ptr1 = strstri(str, "document.cookie"); if(ptr1 != NULL) @@ -2480,36 +2457,11 @@ void _getJSCookie(char *dataBuff, char *str, char *ip, int port) }; } -int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std::vector<std::string> *redirStrLst, char *rBuff) +int Lexems::_header(char *ip, int port, const char str[], Lexems *l, PathStr *ps, std::vector<std::string> *redirStrLst, char *rBuff) { std::string redirectStr = ""; if(strstr(str, "Set-Cookie:") != NULL) strncpy(ps->cookie, _getAttribute(str, "Set-Cookie:"), COOKIE_MAX_SIZE); - -#pragma region Prechecks - if(strstr(str, "[IGNR_ADDR]") != NULL) - { - if(gNegDebugMode) stt->doEmitionDebugFoundData("[<a href=\"http://" + QString(ip) + ":" + QString::number(port) + "/\"><font color=\"#0084ff\">" + QString(ip) + ":" + QString::number(port) + "</font></a>" + "] Rejecting in _header::Precheck."); - strcpy(ps->headr, "[IGNR_ADDR]"); - strcpy(ps->path, "/"); - return 0; - }; - strcpy(ps->codepage, GetCodePage(str)); - - if(strstr(str, "[CONN_LOWLOAD_OMG]") != NULL) - { - strcpy(ps->headr, "[CONN_LOWLOAD_OMG]"); - strcpy(ps->path, "/"); - return 0; - }; - - if(strlen(str) == 0) - { - strcpy(ps->headr, "[No data!]"); - strcpy(ps->path, "/"); - return 0; - }; - char finalstr[512] = {0}; if(strstri(str, "notice auth :*** looking up your hostname...") @@ -2520,7 +2472,7 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: strcpy(ps->path, "/"); return 1; }; - if((strstri(str, "ip camera") != NULL || strstri(str, "+tm01+") != NULL + if((strstri(str, "ip camera") != NULL || strstr(str, "+tm01+") != NULL || strstri(str, "camera web server") != NULL || strstri(str, "ipcam_language") != NULL || strstri(str, "/viewer/video.jpg") != NULL || strstri(str, "network camera") != NULL || strstri(str, "sanpshot_icon") != NULL || strstri(str, "snapshot_icon") != NULL @@ -2533,171 +2485,31 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: && strstr(str, "contac") == NULL && strstr(str, "company") == NULL ) - { - strcpy(ps->headr, "[IP Camera detected]"); + { + if (strstr(str, "CgiStart?page=Single") != NULL) { + strcpy(ps->headr, "[IP Camera (Unibrowser)]"); + } + else { + strcpy(ps->headr, "[IP Camera]"); + } l->flag = 0; ps->flag = 0; }; - if(strstri(str, "get_status.cgi") != NULL) - { strcpy(ps->headr, "[It may be ip camera]"); }; + if(strstri(str, "get_status.cgi") != NULL) strcpy(ps->headr, "[It may be ip camera]"); if(strstri(str, "vo_logo.gif") != NULL || strstri(str, "vo logo.gif") != NULL - ) - { strcpy(ps->headr, "[VIVOTEK camera detected?]"); }; + ) strcpy(ps->headr, "[VIVOTEK camera detected?]"); + if(strstri(str, "$lock extended") != NULL) - { strcpy(ps->headr, "[DChub detected.]"); strcpy(ps->path, "/"); return 0; }; + { + strcpy(ps->headr, "[DChub detected.]"); + strcpy(ps->path, "/"); + return 0; + }; if(strstri(str, "top.htm?currenttime") != NULL || strstri(str, "top.htm?") != NULL - ) strcat(finalstr, " [?][SecCam detected]"); - - -#pragma region 302 Redirects - if( strstri(str, "http/1.0 301") != NULL || strstri(str, "http/1.1 301") != NULL - || strstri(str, "http/1.0 302") != NULL || strstri(str, "http/1.1 302") != NULL - || strstri(str, "http/1.0 307") != NULL || strstri(str, "http/1.1 307") != NULL - || strstri(str, "303 see other") != NULL - ) - { - char *temp = NULL, *temp2 = NULL; - int res = 127; - if(strstri(str, "location: ") != NULL) - { - temp = strstri(str, "location: "); - if( strstr(temp + 10, "\r\n") != NULL ) temp2 = strstr(temp + 10, "\r\n"); - else if( strstr(temp + 10, "\n") != NULL ) temp2 = strstr(temp + 10, "\n"); - - if(temp2 != NULL) - { - res = temp2 - temp - 10; - char newLoc[256] = {0}; - char *tmp = strstr(temp, "/"); - - if(tmp != NULL) - { - strncat(newLoc, temp + 10, res < 256 ? res : 255); - if(strstri(newLoc, "http://") == NULL && strstri(newLoc, "https://") == NULL) - { - if(newLoc[0] != '.') - { - if(newLoc[0] != '/') - { - int sz = strlen(newLoc); - if (sz > 255) - { - stt->doEmitionRedFoundData("Huge redirect string detected! " + QString(ip) + ":" + QString::number(port)); - sz = 255; - }; - char tnewLoc[256] = {0}; - strcpy(tnewLoc, "/"); - strncat(tnewLoc, newLoc, sz); - strncpy(newLoc, tnewLoc, sz); - }; - }; - }; - redirectStr = std::string(newLoc); - if(std::find(redirStrLst->begin(), redirStrLst->end(), redirectStr) == redirStrLst->end()) - { - redirStrLst->push_back(redirectStr); - return redirectReconnect(ps->cookie, ip, port, newLoc, l, ps, redirStrLst, rBuff); - } return -1; - return -2; - }; - }; - } - else if(strstri(str, "location:") != NULL) - { - temp = strstri(str, "location:"); - if( strstr(temp + 9, "\r\n") != NULL ) temp2 = strstr(temp + 9, "\r\n"); - else if( strstr(temp + 9, "\n") != NULL ) temp2 = strstr(temp + 9, "\n"); - - if(temp != NULL) - { - res = temp2 - temp - 9; - char newLoc[128] = {0}; - char *tmp = strstr(temp, "/"); - - if(tmp != NULL) - { - strncat(newLoc, temp + 9, res < 128 ? res : 127); - redirectStr = std::string(newLoc); - if(std::find(redirStrLst->begin(), redirStrLst->end(), redirectStr) == redirStrLst->end()) - { - redirStrLst->push_back(redirectStr); - return redirectReconnect(ps->cookie, ip, port, newLoc, l, ps, redirStrLst, rBuff); - } return -1; - return -2; - }; - }; - }; - }; - - if(strstri(str, "http-equiv=\"refresh\"") != NULL - || strstri(str, "http-equiv=refresh") != NULL - || strstri(str, "http-equiv='refresh'") != NULL - ) - { - char *temp = NULL; - char *strTmp = NULL; - - if(strstri(str, "http-equiv=\"refresh\"") != NULL) strTmp = strstri(str, "ttp-equiv=\"refresh\""); - else if(strstri(str, "http-equiv=refresh") != NULL) strTmp = strstri(str, "http-equiv=refresh"); - else if(strstri(str, "http-equiv='refresh'") != NULL) strTmp = strstri(str, "http-equiv='refresh'"); - - if(strstri(strTmp, "url=") != NULL ) - { - if((int)(strstri(strTmp, "url=") - strTmp) < 100) - { - temp = strstri(strTmp, "url="); - - char *temp2 = NULL, temp3[128] = {0}; - int sz = 0; - - if(temp[4] == '"' || temp[4] == '\'' || temp[4] == ' ' || temp[4] == '\n' || temp[4] == '\r') - { - temp2 = _findFirst(temp + 6, " \n>\"'"); - if(temp2 != NULL) - { - sz = (int)(temp2 - temp) - 5; - strncpy(temp3, (char*)(temp + 5), (sz < 128 ? sz : 127)); - }; - } - else - { - temp2 = _findFirst(temp + 4, " \n>\"'"); - if(temp2 != NULL) - { - sz = (int)(temp2 - temp) - 4; - strncpy(temp3, (char*)(temp + 4), sz < 128 ? sz : 127); - }; - }; - if(strstri(temp3, "http://") == NULL && strstri(temp3, "https://") == NULL) - { - if(temp3[0] != '.') - { - if(temp3[0] != '/') - { - char temp4[128] = {0}; - strcpy(temp4, "/"); - strncat(temp4, temp3, 127); - strncpy(temp3, temp4, 128); - }; - }; - }; - redirectStr = std::string(temp3); - if(std::find(redirStrLst->begin(), redirStrLst->end(), redirectStr) == redirStrLst->end()) - { - redirStrLst->push_back(redirectStr); - return redirectReconnect(ps->cookie, ip, port, temp3, l, ps, redirStrLst, rBuff); - } return -1; - strcat(ps->headr, " "); - return -2; - }; - strcat(ps->headr, finalstr); - strcat(ps->headr, " "); - return 0; - }; - }; + ) strcat(finalstr, " [?][SecCam detected]"); if(strstri(str, "<script") != NULL) { @@ -2706,9 +2518,11 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: ZeroMemory(ps->cookie, sizeof(ps->cookie)); _getJSCookie(ps->cookie, str, ip, port); }; + char *ptr1 = strstri(str, "<script"); char *ptr2 = NULL; char linkPtr[512] = {0}; + do { ZeroMemory(linkPtr, 512); @@ -2798,7 +2612,6 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: }; }; - if(strstri(str, "ActiveXObject") != NULL || strstri(str, ".cab") != NULL || strstri(str, "clsid:") != NULL @@ -2806,6 +2619,7 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: { strcat(ps->headr, "[ActiveX]"); }; + if(strstri(str, "<applet") != NULL && strstri(str, ".jar") != NULL ) @@ -2823,7 +2637,7 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: if(strstri(str, "<frameset") != NULL || strstri(str, "<frame") != NULL || strstri(str, "<iframe") != NULL) { - char *str1 = str; + const char *str1 = str; char *str2 = NULL; char lol[128] = {0}; int AreaLen = 0; @@ -2899,7 +2713,7 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: { redirStrLst->push_back(redirectStr); return redirectReconnect(ps->cookie, ip, port, lol, l, ps, redirStrLst, rBuff); - } return -1; + }; } else { @@ -2919,7 +2733,7 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: } else { - stt->doEmitionRedFoundData("[FrameLocator] Corrupted tag! [" + QString(ip) +":" + QString::number(port) + "]"); + stt->doEmitionRedFoundData("[FrameLocator] Corrupted tag. [" + QString(ip) +":" + QString::number(port) + "]"); }; }; } @@ -2993,7 +2807,7 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: if(strstr(str, "\r\n\r\n") != NULL) { - char *tempStr = strstr(str, "\r\n\r\n"); + const char *tempStr = strstr(str, "\r\n\r\n"); if(strlen(tempStr) - 4 >= 250) { if(strstr(str, "Content-Encoding: gzip") != NULL) @@ -3024,7 +2838,6 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: }; ++Filt; - strcpy(ps->headr, "[IGNR_ADDR]"); strcpy(ps->path, "/"); return 0; }; @@ -3036,6 +2849,7 @@ int Lexems::_header(char *ip, int port, char str[], Lexems *l, PathStr *ps, std: strcat(ps->headr, "]"); }; }; + ps->flag = ContentFilter(str, port, ip, ps->codepage); if(strstri(str, "window.open(") != NULL) diff --git a/main.cpp b/main.cpp index 744d5fb..f29faa1 100644 --- a/main.cpp +++ b/main.cpp @@ -1,22 +1,7 @@ #include "nesca_3.h" #include <QApplication> #include <qfontdatabase.h> -#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) -#include <windows.h> -#endif -//--Fixing _ITERATOR_DEBUG_LEVEL 0!=2 -//#if defined(Q_OS_WIN32) -//int WINAPI WinMain(HINSTANCE hInstance, -// HINSTANCE hPrevInstance, LPSTR lpcmdline, int ncmdshow) -//{ -// QApplication a(ncmdshow, (char **)lpcmdline); -//#else -//int main(int argc, char *argv[]) -//{ -// QApplication a(argc, argv); -//#endif -//#if defined(Q_OS_WIN32) int main(int argc, char *argv[]) { QApplication a(argc, argv); @@ -37,8 +22,7 @@ int main(int argc, char *argv[]) } } } - -//#endif + nesca_3 *gui = new nesca_3(); gui->showNormal(); diff --git a/mainResources.h b/mainResources.h index e92283d..6aa3ab2 100644 --- a/mainResources.h +++ b/mainResources.h @@ -3,9 +3,9 @@ #include <libssh/libssh.h> #include <openssl/ssl.h> +#include <vector> #include <curl/curl.h> #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) -#pragma once #include "iostream" #include <time.h> #include <process.h> @@ -13,7 +13,6 @@ #else #include <string> #include <iostream> -#include <vector> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -129,12 +128,12 @@ class Lexems int _header(char *ip, int port, - char str[], + const char str[], Lexems *l, PathStr *ps, std::vector<std::string> *lst, char *rBuff); - int _filler(int p, char *buffcpy, char* ipi, int recd, Lexems *lx, char *hl); + int _filler(int p, const char *buffcpy, char* ipi, int recd, Lexems *lx, char *hl); int globalSearchNeg(const char *buffcpy, char *ip, int port); }; diff --git a/negatives.txt b/negatives.txt index 8ad9782..5d96ffe 100644 --- a/negatives.txt +++ b/negatives.txt @@ -1,13 +1,39 @@ -yadro.ru +Adapto CMS +баланс +средств +на вашем счету +абонент +RFB 009 +00;39;49mroot: Authorization Required -Firewall Authentication required before +.swf +yadro.ru liveinternet #[Dlink] +DIR-100 +DIR-615 +DIR-140 session_login.php?reload=1 +Firewall Authentication required before +Piolink Web +You are not welcome to use +Permission error +sample.org +421 FTP connection refused +No HTTP resource was found +RTDVR ActiveX D-RMS +command not understood +baZsDJAabybWQby +report abuse atwiki studio McMyAdmin +500 Syntax error +Starting WebDVR +530 Connection refused +I can break rules, too +this system is engaged Aviso de Bloqueio Servico nao disponivel Content-Encoding: gzip @@ -73,8 +99,10 @@ MELOOK /welcome/ application/x-shockwave-flash /customer +e-Learn /esi.cgi?page=status-index.xml /guarantee +.ac.jp /html/index.asp /iisstart.asp /images/final-hp @@ -92,6 +120,7 @@ application/x-shockwave-flash site introuvable shop sell +test server /company /brand /signin @@ -360,7 +389,12 @@ customer is functioning normally is under construction ispmanager control panel -it works +it work +error404 +404err +error500 +500err +407 Proxy ibm websphere is now configured is currently undergoing @@ -441,6 +475,7 @@ olvido su password oncell warning one time payment one web server +Welcome to nginx online dating online store oracle application server @@ -454,6 +489,7 @@ Directory Listing Denied page=about pagerrorimg pagos +CodeIgniter parkerad parking. paradox ip module @@ -592,8 +628,17 @@ sww link synology taobao TopPageFinder.com +Sun Microsystems, Inc +421 Service is unavailable +404 Page not found +Echo Service +CareerVision teamportal teamviewer +AW+ GUI Applet +Technotree Web +SI-TEC +desknet technical support teles.igate tellion @@ -601,6 +646,8 @@ tell tell. TEL( fax( +Web Management Login +IBM HTTP Server no server available tell: tell : @@ -612,6 +659,8 @@ tel : tel: tel? tel ? +tel) +AirLibro fax? fax ? termos de uso @@ -706,7 +755,19 @@ www.ibm.com www.lacie.com www.sedo.com xenserver +CommuniGate Pro +MACROSCOP +Бухгалтер +бюджет +Welcome to WildFly +Welcome to jboss +VoIP Router +Can't connect to xfinity +строй +строит +VoIP Telephone +This site requires JavaScript xtreamer yahoo you are not logged in @@ -721,20 +782,23 @@ wkrotce архив новостей в стадии разработки в разработке +фильм +film +Не удается отобразить страницу +page does not exist права защищены -дача -даче -дешевы -дешёвы +дач +дешев +дешёв +pm2-web домен продается домены на продажу доставка заказать доставку заработок в сети знакомства -истек срок регистрации +истек срок карикатуры -код регистрации конкурс контакты кухни @@ -745,24 +809,29 @@ wkrotce мода мы предоставляем на реконструкции +позже найти работу находится в разработке наш баннер -наша компания +компани низкие цены +Некорректный URL +Невозможно подключиться новый адрес -о компании +магаз о нас остев партнерк перевод текстов перееха персональный сайт -пиши мне -пиши нам -пишите мне -пишите нам -подержанные +пиши +подержан +отключен +профилактические работы +временные неудобства +Неверный ключ +Seo подписаться поиск работы приколы @@ -791,6 +860,21 @@ wkrotce технические работы услуги флешки +Произошла ошибка +на хостинге +Fatal error: +mc.yandex.ru/watch +mc.yandex.ru/metrika +UNKNOWN HOST +host not found +Сайт закрыт +?partner +хокке + +добро пожаловать в +статусы +высказывани + флэшки футбол юмор diff --git a/nesca_3.cpp b/nesca_3.cpp index ce941c6..a2900e2 100644 --- a/nesca_3.cpp +++ b/nesca_3.cpp @@ -35,8 +35,6 @@ int ver = 100*(100*(date.year()%100) + date.month()) + date.day(); #define WIDGET_WIDTH 500 //#define IRC_CHAN "iskopasi_lab01" - - bool utfIRCFlag = true; bool HTMLDebugMode = false; bool code160 = false; @@ -151,15 +149,11 @@ QVector<int> vLowlLst; QVector<int> vBALst; QVector<int> vSSHLst; QVector<int> vOvrlLst; -QVector<QPointF> vect; QMenu *menuPS; QVector<QRect> NodeDots; QVector<QString> NodeAddrs; - -int u = 1; - const nesca_3 *gthis; bool BALogSwitched = false; bool widgetIsHidden = false; @@ -171,8 +165,6 @@ QList<QString> PhraseLog; bool ME2ScanFlag = true, QoSScanFlag = false, VoiceScanFlag = false, PieStatFlag = false; Ui::nesca_3Class *ui = new Ui::nesca_3Class; - - void setSceneArea() { delete ui->graphicsVoice; @@ -193,6 +185,15 @@ void setSceneArea() sceneUpper->setSceneRect(0, 0, ui->graphicLog_Upper->width(), ui->graphicLog_Upper->height()); sceneGrid->setSceneRect(0, 0, ui->graphicLog_Upper->width(), ui->graphicLog_Upper->height()); + QLinearGradient gradient(0, 0, 0, 94); + gradient.setColorAt(0, QColor(255, 0, 0)); + gradient.setColorAt(0.7, QColor(255, 0, 0)); + gradient.setColorAt(0.85, QColor(255, 255, 0)); + gradient.setColorAt(0.9, QColor(0, 255, 0)); + gradient.setColorAt(1, QColor(255, 255, 255, 60)); + pen2i.setBrush(gradient); + sceneGraph->setItemIndexMethod(QGraphicsScene::NoIndex); + sceneActivity = new QGraphicsScene(); sceneActivityGrid = new QGraphicsScene(); sceneTextPlacer = new QGraphicsScene(); @@ -740,41 +741,44 @@ void nesca_3::slotAddLine(int x1, int y1, int x2, int y2) }; } + void nesca_3::slotAddPolyLine() { - sceneGraph->setItemIndexMethod(QGraphicsScene::NoIndex); if(ME2ScanFlag) { QPainterPath path; - if(vect.size() > 0) + if (DrawerTh_ME2Scanner::polyVect.size() > 0) { - path.moveTo(vect[0]); - for(int i = 1; i < vect.size(); ++i) + path.moveTo(DrawerTh_ME2Scanner::polyVect[0]); + for (int i = 1; i < DrawerTh_ME2Scanner::polyVect.count(); ++i) { - path.lineTo(vect[i]); + path.lineTo(DrawerTh_ME2Scanner::polyVect[i]); }; }; QGraphicsPathItem* itm = new QGraphicsPathItem(path); itm->setPen(pen2i); - sceneGraph->addItem(itm); + DrawerTh_ME2Scanner::itmList.push_front(itm); - double uu = 0.0; - int vSz = sceneGraph->items().count(); - for(int i = 0; i < vSz; ++i) + int u = 0; + double uu = 1.0; + for (int i = 0; i < DrawerTh_ME2Scanner::itmList.count(); ++i) { - sceneGraph->items()[i]->setY(u + i + 1); - sceneGraph->items()[i]->setOpacity(0 + uu); - uu += 0.027; - u += 1; + itm = DrawerTh_ME2Scanner::itmList[i]; + int y = u - i - 1; + itm->setY(y); + itm->setOpacity(uu); + sceneGraph->addItem(itm); + uu -= 0.027; + u -= 1; }; - while(sceneGraph->items().count() > 38) + while (DrawerTh_ME2Scanner::itmList.count() > 38) { - sceneGraph->removeItem(sceneGraph->items().first()); + sceneGraph->removeItem(DrawerTh_ME2Scanner::itmList[38]); + delete DrawerTh_ME2Scanner::itmList[38]; + DrawerTh_ME2Scanner::itmList.pop_back(); }; - - if(u > 10) u = 1; }; } @@ -853,7 +857,6 @@ void nesca_3::activateME2ScanScene() ui->PieStatBut->setStyleSheet("color: rgb(130, 130, 130);background-color: rgba(2, 2, 2, 0);border: 1px solid rgba(130, 130, 130, 80);"); sceneUpper->clear(); - sceneGrid->clear(); sceneGrid2->clear(); sceneGraph->clear(); @@ -873,22 +876,12 @@ void nesca_3::activateME2ScanScene() QoSScanFlag = false; VoiceScanFlag = false; PieStatFlag = false; - - for(int i = 0; i < sceneGrid->items().size(); ++i) - { - sceneGrid->removeItem(sceneGrid->items()[i]); - sceneGrid->items().clear(); - }; - for(int i = 0; i < sceneGrid2->items().size(); ++i) - { - sceneGrid2->removeItem(sceneGrid2->items()[i]); - sceneGrid2->items().clear(); - }; if(dtHN->isRunning() == false) { dtHN->start(); }; + if(dtME2->isRunning() == false) { dtME2->start(); @@ -947,7 +940,7 @@ void nesca_3::activateQoSScanBut() sceneUpper->clear(); sceneTextPlacer->clear(); sceneVoice->clear(); - vect.clear(); + DrawerTh_ME2Scanner::polyVect.clear(); if(dtQoS->isRunning() == false) dtQoS->start(); if(dtGridQoS->isRunning() == false) dtGridQoS->start(); @@ -1869,48 +1862,6 @@ void nesca_3::slotIRCGetTopic(QString str) ui->ircText->append(rData); } -//unsigned char jpgHeader[623] = { -// 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x60, -// 0x00, 0x60, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x43, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, -// 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x05, 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, 0x04, -// 0x04, 0x03, 0x05, 0x07, 0x06, 0x07, 0x07, 0x07, 0x06, 0x07, 0x07, 0x08, 0x09, 0x0B, 0x09, 0x08, -// 0x08, 0x0A, 0x08, 0x07, 0x07, 0x0A, 0x0D, 0x0A, 0x0A, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x07, 0x09, -// 0x0E, 0x0F, 0x0D, 0x0C, 0x0E, 0x0B, 0x0C, 0x0C, 0x0C, 0xFF, 0xDB, 0x00, 0x43, 0x01, 0x02, 0x02, -// 0x02, 0x03, 0x03, 0x03, 0x06, 0x03, 0x03, 0x06, 0x0C, 0x08, 0x07, 0x08, 0x0C, 0x0C, 0x0C, 0x0C, -// 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, -// 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, -// 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xFF, 0xC0, -// 0x00, 0x11, 0x08, 0x00, 0x64, 0x00, 0x80, 0x03, 0x01, 0x22, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, -// 0x01, 0xFF, 0xC4, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, -// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, -// 0x0A, 0x0B, 0xFF, 0xC4, 0x00, 0xB5, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03, 0x05, -// 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7D, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, -// 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08, 0x23, -// 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, 0x17, -// 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, -// 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, -// 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, -// 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, -// 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, -// 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, -// 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF1, -// 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFF, 0xC4, 0x00, 0x1F, 0x01, 0x00, 0x03, -// 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -// 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xFF, 0xC4, 0x00, 0xB5, 0x11, 0x00, -// 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, -// 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, -// 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, -// 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, -// 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, -// 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, -// 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, -// 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, -// 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, -// 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, -// 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, -// 0xFA, 0xFF, 0xDA, 0x00, 0x0C, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3F, 0x00 -//}; -// int c = 1; void nesca_3::slotSaveImage(QAction *qwe) @@ -2414,7 +2365,6 @@ void nesca_3::slotIncData(QString ip, QString str) }; } -#pragma region SM_Buts void nesca_3::smReaction() { QObject *smB = this->sender(); @@ -2849,7 +2799,6 @@ void nesca_3::changeNSTrackLabel(bool status) else ui->NSTrackStatusLabel->setStyleSheet("background-color: black; border: 1px solid white;"); } -#pragma region "Signal assignments" void nesca_3::ConnectEvrthng() { connect ( pbTh, SIGNAL(upd()), this, SLOT(slotPBUpdate())); @@ -2891,7 +2840,7 @@ void nesca_3::ConnectEvrthng() connect ( ui->startScanButton_4, SIGNAL( clicked() ), this, SLOT( startScanButtonClickedDNS() ) ); connect ( ui->shuffle_onoff, SIGNAL(toggled(bool)), this, SLOT(ChangeShuffle(bool))); connect ( ui->trackerOnOff, SIGNAL(toggled(bool)), this, SLOT(ChangeTrackerOK(bool))); - connect ( ui->pingingOnOff, SIGNAL( toggled(bool) ), this, SLOT( ChangePingerOK(bool) ) ); +// connect ( ui->pingingOnOff, SIGNAL( toggled(bool) ), this, SLOT( ChangePingerOK(bool) ) ); connect ( ui->debugFileOnOff, SIGNAL( toggled(bool) ), this, SLOT( ChangeDebugFileState(bool) ) ); connect ( ui->importThreads, SIGNAL( textChanged(QString) ), this, SLOT( ChangeLabelThreads_ValueChanged(QString) ) ); connect ( ui->threadLine, SIGNAL( textChanged(QString) ), this, SLOT( ChangeLabelThreads_ValueChanged(QString) ) ); @@ -3107,27 +3056,36 @@ void RestoreSession() }; }; - if(strstr(resStr, "[NDBSERVER]:") != NULL) ui->lineTrackerSrv->setText(loadNescaSetup(resStr, "[NDBSERVER]:").simplified()); - if(strstr(resStr, "[NDBSCRIPT]:") != NULL) ui->lineTrackerScr->setText(loadNescaSetup(resStr, "[NDBSCRIPT]:").simplified()); - if(strstr(resStr, "[NDBPORT]:") != NULL) ui->trcSrvPortLine->setText(loadNescaSetup(resStr, "[NDBPORT]:").simplified()); - if(strstr(resStr, "[PING]:") != NULL) ui->pingingOnOff->setText(loadNescaSetup(resStr, "[PING]:").simplified()); - if(strstr(resStr, "[PING_TO]:") != NULL) ui->PingTO->setText(loadNescaSetup(resStr, "[PING_TO]:").simplified()); - if(strstr(resStr, "[THREAD_DELAY]:") != NULL) ui->threadDelayBox->setText(loadNescaSetup(resStr, "[THREAD_DELAY]:").simplified()); - if(strstr(resStr, "[TIMEOUT]:") != NULL) { - ui->iptoLine_value->setText(loadNescaSetup(resStr, "[TIMEOUT]:")); - ui->iptoLine_value_2->setText(loadNescaSetup(resStr, "[TIMEOUT]:")); - ui->iptoLine_value_3->setText(loadNescaSetup(resStr, "[TIMEOUT]:")); - } - if(strstr(resStr, "[MAXBTHR]:") != NULL) ui->maxBrutingThrBox->setText(loadNescaSetup(resStr, "[MAXBTHR]:").simplified()); - if(strstr(resStr, "[PERSKEY]:") != NULL) ui->linePersKey->setText(loadNescaSetup(resStr, "[PERSKEY]:").simplified()); - if(strstr(resStr, "[IRCSERVER]:") != NULL) ui->ircServerBox->setText(loadNescaSetup(resStr, "[IRCSERVER]:").simplified()); - if(strstr(resStr, "[IRCPORT]:") != NULL) ui->serverPortBox->setText(loadNescaSetup(resStr, "[IRCPORT]:").simplified()); - if(strstr(resStr, "[IRCPROXY]:") != NULL) ui->ircProxy->setText(loadNescaSetup(resStr, "[IRCPROXY]:").simplified()); - if(strstr(resStr, "[IRCPROXYPORT]:") != NULL) ui->ircProxyPort->setText(loadNescaSetup(resStr, "[IRCPROXYPORT]:").simplified()); - if(strstr(resStr, "[SYSTEMPROXYIP]:") != NULL) ui->systemProxyIP->setText(loadNescaSetup(resStr, "[SYSTEMPROXYIP]:").simplified()); - if(strstr(resStr, "[SYSTEMPROXYPORT]:") != NULL) ui->systemProxyPort->setText(loadNescaSetup(resStr, "[SYSTEMPROXYPORT]:").simplified()); - if(strstr(resStr, "[IRCNICK]:") != NULL) ui->ircNickBox->setText(loadNescaSetup(resStr, "[IRCNICK]:").simplified()); - ZeroMemory(resStr, sizeof(resStr)); + if (strstr(resStr, "[NDBSERVER]:") != NULL) ui->lineTrackerSrv->setText(loadNescaSetup(resStr, "[NDBSERVER]:").simplified()); + else if (strstr(resStr, "[NDBSCRIPT]:") != NULL) ui->lineTrackerScr->setText(loadNescaSetup(resStr, "[NDBSCRIPT]:").simplified()); + else if (strstr(resStr, "[NDBPORT]:") != NULL) ui->trcSrvPortLine->setText(loadNescaSetup(resStr, "[NDBPORT]:").simplified()); + else if (strstr(resStr, "[PING]:") != NULL) { + lex = strstr(resStr, "[PING]:") + strlen("[PING]:"); + + if (strlen(lex) > 1) + { + lex[strlen(lex) - 1] = '\0'; + ui->pingingOnOff->setChecked(strcmp(lex, "true") == 0 ? true : false); + }; + } + else if (strstr(resStr, "[PING_TO]:") != NULL) ui->PingTO->setText(loadNescaSetup(resStr, "[PING_TO]:").simplified()); + else if (strstr(resStr, "[THREAD_DELAY]:") != NULL) ui->threadDelayBox->setText(loadNescaSetup(resStr, "[THREAD_DELAY]:").simplified()); + else if (strstr(resStr, "[TIMEOUT]:") != NULL) { + const QString &tempLex = loadNescaSetup(resStr, "[TIMEOUT]:"); + ui->iptoLine_value->setText(tempLex); + ui->iptoLine_value_2->setText(tempLex); + ui->iptoLine_value_3->setText(tempLex); + } + else if (strstr(resStr, "[MAXBTHR]:") != NULL) ui->maxBrutingThrBox->setText(loadNescaSetup(resStr, "[MAXBTHR]:").simplified()); + else if (strstr(resStr, "[PERSKEY]:") != NULL) ui->linePersKey->setText(loadNescaSetup(resStr, "[PERSKEY]:").simplified()); + else if (strstr(resStr, "[IRCSERVER]:") != NULL) ui->ircServerBox->setText(loadNescaSetup(resStr, "[IRCSERVER]:").simplified()); + else if (strstr(resStr, "[IRCPORT]:") != NULL) ui->serverPortBox->setText(loadNescaSetup(resStr, "[IRCPORT]:").simplified()); + else if (strstr(resStr, "[IRCPROXY]:") != NULL) ui->ircProxy->setText(loadNescaSetup(resStr, "[IRCPROXY]:").simplified()); + else if (strstr(resStr, "[IRCPROXYPORT]:") != NULL) ui->ircProxyPort->setText(loadNescaSetup(resStr, "[IRCPROXYPORT]:").simplified()); + else if (strstr(resStr, "[SYSTEMPROXYIP]:") != NULL) ui->systemProxyIP->setText(loadNescaSetup(resStr, "[SYSTEMPROXYIP]:").simplified()); + else if (strstr(resStr, "[SYSTEMPROXYPORT]:") != NULL) ui->systemProxyPort->setText(loadNescaSetup(resStr, "[SYSTEMPROXYPORT]:").simplified()); + else if (strstr(resStr, "[IRCNICK]:") != NULL) ui->ircNickBox->setText(loadNescaSetup(resStr, "[IRCNICK]:").simplified()); + ZeroMemory(resStr, sizeof(resStr)); }; fclose(resFile); @@ -3236,13 +3194,7 @@ void _startMsgCheck() QTime time = QTime::currentTime(); qsrand((uint)time.msec()); - - QLinearGradient gradient(0, 0, 0, 20); - gradient.setColorAt(0, QColor(0,255,0)); - gradient.setColorAt(0.5, QColor(100,100,100, 100)); - gradient.setColorAt(1, QColor(255,255,255, 60)); - pen2i.setBrush(gradient); - + ui->ircNickBox->setText("nsa_" + QString::number(qrand() % 8999 + 1000)); char rVer[32] = {0}; diff --git a/nesca_3.h b/nesca_3.h index 4a12fd7..ddc922d 100644 --- a/nesca_3.h +++ b/nesca_3.h @@ -1,7 +1,10 @@ #ifndef nesca_3_H #define nesca_3_H -#pragma once +//Include windows.h ONLY *after* qdatetime.h +//Bug: https://bugreports.qt.io/browse/QTBUG-31469 + +#include <qdatetime.h> #include <QMainWindow> #include <qapplication.h> #include <qgraphicsitem.h> @@ -12,7 +15,6 @@ #include <QSystemTrayIcon> #include <QtGui/qevent.h> #include <qthread.h> -#include <qdatetime.h> #include <qjsonobject.h> #include <qjsonvalue.h> #include <qjsonarray.h> @@ -31,7 +33,6 @@ extern char endIP2[128], inputStr[256]; extern SOCKET lSock; extern QVector<int> vAlivLst, vAnomLst, vWFLst, vSuspLst, vLowlLst, vBALst, vSSHLst, vOvrlLst, actLst; -extern QVector<QPointF> vect; extern QList<int> lstOfLabels; extern QSystemTrayIcon *tray; diff --git a/nesca_3.ui b/nesca_3.ui index 720c9df..c09152b 100644 --- a/nesca_3.ui +++ b/nesca_3.ui @@ -91,7 +91,7 @@ <enum>QTabWidget::Rounded</enum> </property> <property name="currentIndex"> - <number>3</number> + <number>0</number> </property> <property name="elideMode"> <enum>Qt::ElideMiddle</enum> @@ -1186,13 +1186,13 @@ border-radius: 3px;</string> </font> </property> <property name="whatsThis"> - <string>Ping hosts before connection attempts. (For bad internet-providers)</string> + <string>Ping hosts before connection attempts.</string> </property> <property name="styleSheet"> <string notr="true">color: rgb(216, 216, 216); background-color: rgba(2, 2, 2, 0);</string> </property> <property name="text"> - <string>Ping hosts:</string> + <string>Ping hosts</string> </property> <property name="shortcut"> <string>Ctrl+S</string> @@ -1340,7 +1340,7 @@ border-radius: 3px;</string> <property name="geometry"> <rect> <x>390</x> - <y>89</y> + <y>90</y> <width>51</width> <height>20</height> </rect> @@ -1774,7 +1774,7 @@ border-radius: 3px;</string> <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'Consolas'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p></body></html></string> </property> <property name="cursorWidth"> @@ -2537,7 +2537,7 @@ p, li { white-space: pre-wrap; } <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Eurostile'; font-size:11pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'Eurostile'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></string> </property> <property name="cursorWidth"> @@ -3521,7 +3521,7 @@ background-color: #000000;</string> <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Eurostile'; font-size:11pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'Eurostile'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></string> </property> <property name="acceptRichText"> @@ -3657,7 +3657,7 @@ p, li { white-space: pre-wrap; } <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Eurostile'; font-size:11pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'Eurostile'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:2px; margin-bottom:2px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></string> </property> <property name="acceptRichText"> diff --git a/nesca_startModule.cpp b/nesca_startModule.cpp index 501cb9c..a15d1dc 100644 --- a/nesca_startModule.cpp +++ b/nesca_startModule.cpp @@ -2282,6 +2282,7 @@ int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder) int startScan(char* args) { + curl_global_init(CURL_GLOBAL_ALL); SSL_library_init(); OpenSSL_add_all_algorithms(); /* Load cryptos, et.al. */ SSL_load_error_strings(); /* Bring in and register error messages */ diff --git a/oIRC_Th.cpp b/oIRC_Th.cpp index ea1c411..1db931a 100644 --- a/oIRC_Th.cpp +++ b/oIRC_Th.cpp @@ -549,7 +549,6 @@ void IRCLoop() } else if(strstr(comStr, serverRealName) != NULL && (strstr(comStr, " 433 ") > 0 || strstr(comStr, "Nickname is already") > 0) ) { - QTime time = QTime::currentTime(); qsrand((uint)time.msec()); ircTh->doEmitChangeRedIRCData("[Nope] Nickname is already in use.");