This commit is contained in:
cora32 2015-03-10 19:46:25 +03:00
commit 06b328cf66
18 changed files with 446 additions and 673 deletions

View File

@ -4,11 +4,12 @@
void ActivityDrawerTh_HorNet::doEmitDrawActivityLine(QString data) void ActivityDrawerTh_HorNet::doEmitDrawActivityLine(QString data)
{ {
emit adtHN->sDrawActivityLine(data); emit adtHN->sDrawActivityLine(data);
}; }
void ActivityDrawerTh_HorNet::doEmitDrawGrid() void ActivityDrawerTh_HorNet::doEmitDrawGrid()
{ {
emit adtHN->sDrawGrid(); emit adtHN->sDrawGrid();
}; }
void makeActLine(int val) void makeActLine(int val)
{ {
@ -18,7 +19,8 @@ void makeActLine(int val)
actLst.pop_front(); actLst.pop_front();
actLst.push_back(val); actLst.push_back(val);
}; };
}; }
void ActivityDrawerTh_HorNet::run() void ActivityDrawerTh_HorNet::run()
{ {
adtHN->doEmitDrawGrid(); adtHN->doEmitDrawGrid();
@ -34,4 +36,4 @@ void ActivityDrawerTh_HorNet::run()
Activity = 0; Activity = 0;
msleep(130); msleep(130);
}; };
}; }

View File

@ -1,4 +1,3 @@
#pragma once
#include "CheckKey_Th.h" #include "CheckKey_Th.h"
#include "CheckProxy_Th.h" #include "CheckProxy_Th.h"
#include "STh.h" #include "STh.h"
@ -36,6 +35,7 @@ void getSubStr(char *src, char *startStr, char *endStr, char *dest, int szDest)
}; };
}; };
} }
int emitIfOK = -1; int emitIfOK = -1;
int KeyCheckerMain() int KeyCheckerMain()
{ {
@ -57,11 +57,13 @@ int KeyCheckerMain()
std::string buffer; std::string buffer;
Connector::nConnect((std::string(trcSrv) + std::string(trcScr)).c_str(), std::stoi(trcSrvPortLine), &buffer, NULL, &headerVector); Connector::nConnect((std::string(trcSrv) + std::string(trcScr)).c_str(), std::stoi(trcSrvPortLine), &buffer, NULL, &headerVector);
int hostStringIndex = Utils::ci_find_substr(buffer, std::string("\r\n\r\n")); int hostStringIndex = buffer.find("\r\n\r\n");
if(hostStringIndex != -1) { if(hostStringIndex != -1) {
const char *ptr1 = buffer.c_str() + hostStringIndex + 4;
buffer.clear(); int s = buffer.find("http://", hostStringIndex);
Connector::nConnect((std::string(ptr1) + std::string("/api/checkaccount?key=") + std::string(trcPersKey)).c_str(), int e = buffer.find('/', s + 8);
std::string url = buffer.substr(s, e - s);
Connector::nConnect((url + std::string("/api/checkaccount?key=") + std::string(trcPersKey)).c_str(),
std::stoi(trcSrvPortLine), &buffer, NULL, &headerVector); std::stoi(trcSrvPortLine), &buffer, NULL, &headerVector);
if(Utils::ci_find_substr(buffer, std::string("202 Accepted")) != -1) { if(Utils::ci_find_substr(buffer, std::string("202 Accepted")) != -1) {
@ -72,22 +74,20 @@ int KeyCheckerMain()
return 1; return 1;
} else if(Utils::ci_find_substr(buffer, std::string("400 Bad Request")) != -1) { } else if(Utils::ci_find_substr(buffer, std::string("400 Bad Request")) != -1) {
QString errorDef = GetNSErrorDefinition(buffer.c_str(), "notify"); QString errorDef = GetNSErrorDefinition(buffer.c_str(), "notify");
if(errorDef == "Invalid access key") stt->doEmitionYellowFoundData("[NS-Track] [Key is unauthorized] A valid key is required."); if(errorDef == "Invalid access key") stt->doEmitionYellowFoundData("[NS-Track] Key is unauthorized. A valid key is required.");
else stt->doEmitionYellowFoundData("[Key checker] -FAIL! [400 Bad Request : " + GetNSErrorDefinition(buffer.c_str(), "notify") + "]"); else stt->doEmitionYellowFoundData("[Key check] -FAIL! [400 Bad Request : " + GetNSErrorDefinition(buffer.c_str(), "notify") + "]");
return -1;
} else if(Utils::ci_find_substr(buffer, std::string("503 Bad Gateway")) != -1) { } else if(Utils::ci_find_substr(buffer, std::string("503 Bad Gateway")) != -1) {
stt->doEmitionYellowFoundData("[Key checker] 503 Backend not responding!"); stt->doEmitionYellowFoundData("[Key check] 503 Backend not responding!");
return -1;
} else { } else {
char header[64] = {0}; char header[64] = {0};
getSubStrEx(buffer.c_str(), "http/1.1 ", "\r\n", header, 64); getSubStrEx(buffer.c_str(), "http/1.1 ", "\r\n", header, 64);
stt->doEmitionRedFoundData("[Key checker] -FAIL! An error occured. (" + QString::number(WSAGetLastError()) + ") Header: <u>" + QString::fromLocal8Bit(header) + "</u>"); stt->doEmitionRedFoundData("[Key check] -FAIL! An error occured. (" + QString::number(WSAGetLastError()) + ") Header: <u>" + QString::fromLocal8Bit(header) + "</u>");
if(gDebugMode) stt->doEmitionDebugFoundData(QString(buffer.c_str())); if(gDebugMode) stt->doEmitionDebugFoundData(QString(buffer.c_str()));
return -1;
}; };
} else { } else {
stt->doEmitionRedFoundData("[Key checker] Cannot acquire host string."); stt->doEmitionRedFoundData("[Key check] Cannot acquire host string.");
} }
return -1;
} }
void CheckKey_Th::run() void CheckKey_Th::run()

View File

@ -80,7 +80,6 @@ void CheckProxyLogic()
) )
{ {
chPTh->doEmitChangeRawIRCDataOut(QString::fromLocal8Bit("GET / HTTP/1.1\r\nHost: 2ip.ru\r\n\r\n")); chPTh->doEmitChangeRawIRCDataOut(QString::fromLocal8Bit("GET / HTTP/1.1\r\nHost: 2ip.ru\r\n\r\n"));
send(pSock, "GET / HTTP/1.1\r\nHost: 2ip.ru\r\n\r\n", strlen("GET / HTTP/1.1\r\nHost: 2ip.ru\r\n\r\n"), 0); send(pSock, "GET / HTTP/1.1\r\nHost: 2ip.ru\r\n\r\n", strlen("GET / HTTP/1.1\r\nHost: 2ip.ru\r\n\r\n"), 0);
@ -88,7 +87,6 @@ void CheckProxyLogic()
while(recv(pSock, precvBuff, sizeof(precvBuff), 0) > 0) while(recv(pSock, precvBuff, sizeof(precvBuff), 0) > 0)
{ {
chPTh->doEmitChangeRawIRCDataInc(QString::fromLocal8Bit(precvBuff)); chPTh->doEmitChangeRawIRCDataInc(QString::fromLocal8Bit(precvBuff));
if(strstr(precvBuff, "404 File Not Found") == NULL && strstr(precvBuff, "Invalid Request") == NULL if(strstr(precvBuff, "404 File Not Found") == NULL && strstr(precvBuff, "Invalid Request") == NULL
@ -103,8 +101,6 @@ void CheckProxyLogic()
&& strstr(precvBuff, "gateway timeout") == NULL && strstr(precvBuff, "gateway timeout") == NULL
) )
{ {
chPTh->doEmitChangeGreenIRCData("[OK] Success! Now using " + QString(ircProxy) + ":" + QString(ircProxyPort) + "."); chPTh->doEmitChangeGreenIRCData("[OK] Success! Now using " + QString(ircProxy) + ":" + QString(ircProxyPort) + ".");
proxyEnabledFlag = 1; proxyEnabledFlag = 1;

View File

@ -226,55 +226,6 @@ struct data {
char trace_ascii; /* 1 or 0 */ char trace_ascii; /* 1 or 0 */
}; };
static
void dump(const char *text,
FILE *stream, unsigned char *ptr, size_t size,
char nohex)
{
size_t i;
size_t c;
unsigned int width=0x10;
if(nohex)
/* without the hex output, we can fit more on screen */
width = 0x40;
fprintf(stream, "%s, %10.10ld bytes (0x%8.8lx)\n",
text, (long)size, (long)size);
for(i=0; i<size; i+= width) {
fprintf(stream, "%4.4lx: ", (long)i);
if(!nohex) {
/* hex not disabled, show it */
for(c = 0; c < width; c++)
if(i+c < size)
fprintf(stream, "%02x ", ptr[i+c]);
else
fputs(" ", stream);
}
for(c = 0; (c < width) && (i+c < size); c++) {
/* check for 0D0A; if found, skip past and start a new line of output */
if (nohex && (i+c+1 < size) && ptr[i+c]==0x0D && ptr[i+c+1]==0x0A) {
i+=(c+2-width);
break;
}
fprintf(stream, "%c",
(ptr[i+c]>=0x20) && (ptr[i+c]<0x80)?ptr[i+c]:'.');
/* check again for 0D0A, to avoid an extra \n if it's at width */
if (nohex && (i+c+2 < size) && ptr[i+c+1]==0x0D && ptr[i+c+2]==0x0A) {
i+=(c+3-width);
break;
}
}
fputc('\n', stream); /* newline */
}
fflush(stream);
}
static static
int my_trace(CURL *handle, curl_infotype type, int my_trace(CURL *handle, curl_infotype type,
char *data, size_t size, char *data, size_t size,
@ -285,14 +236,14 @@ int my_trace(CURL *handle, curl_infotype type,
(void)handle; /* prevent compiler warning */ (void)handle; /* prevent compiler warning */
switch (type) { switch (type) {
case CURLINFO_TEXT: case CURLINFO_HEADER_OUT:
if(MapWidgetOpened) stt->doEmitionAddOutData(QString("size"), QString(data));
cout<<"Data: "<<data<<endl;
//fprintf(stderr, "== Info: %s", data); //fprintf(stderr, "== Info: %s", data);
default: /* in case a new one is introduced to shock us */ default: /* in case a new one is introduced to shock us */
return 0; return 0;
} }
if(MapWidgetOpened) stt->doEmitionAddOutData(QString("size"), QString(data));
dump(text, stderr, (unsigned char *)data, size, config->trace_ascii);
return 0; return 0;
} }

View File

@ -10,7 +10,7 @@ class DrawerTh_ME2Scanner : public QThread
Q_OBJECT Q_OBJECT
public: public:
static QList<QGraphicsPathItem*> itmList; static QList<QGraphicsPathItem*> itmList;
static QVector<QPointF> polyVect; static QVector<QPointF> polyVect;
static void doEmitionAddPolyLine(); static void doEmitionAddPolyLine();

View File

@ -1,16 +1,11 @@
#pragma once
#include "DrawerTh_QoSScanner.h" #include "DrawerTh_QoSScanner.h"
#include "STh.h" #include "STh.h"
#include "externData.h" #include "externData.h"
int tMax;
void DrawerTh_QoSScanner::run() void DrawerTh_QoSScanner::run()
{ {
while(QoSScanFlag) while(QoSScanFlag)
{ {
tMax = 0;
if(stt->isRunning() == true && widgetIsHidden == false && tray->isVisible() == false && QOSWait == false) if(stt->isRunning() == true && widgetIsHidden == false && tray->isVisible() == false && QOSWait == false)
{ {
lstOfLabels.clear(); lstOfLabels.clear();
@ -19,15 +14,13 @@ void DrawerTh_QoSScanner::run()
lstOfLabels.append(WF); lstOfLabels.append(WF);
lstOfLabels.append(Susp); lstOfLabels.append(Susp);
lstOfLabels.append(Lowl); lstOfLabels.append(Lowl);
lstOfLabels.append((int)BA); lstOfLabels.append(BA);
lstOfLabels.append(Overl); lstOfLabels.append(Overl);
lstOfLabels.append(ssh); lstOfLabels.append(ssh);
QList<int> lstOfLabelsCopy = lstOfLabels; QList<int> lstOfLabelsCopy = lstOfLabels;
qSort(lstOfLabelsCopy.begin(), lstOfLabelsCopy.end(), qGreater<float>()); qSort(lstOfLabelsCopy.begin(), lstOfLabelsCopy.end(), qGreater<float>());
int curVal = lstOfLabelsCopy[0]; if(lstOfLabelsCopy[0] > MaxDataVal) MaxDataVal = lstOfLabelsCopy[0];
if(curVal > MaxDataVal) MaxDataVal = curVal;
if(curVal > tMax) tMax = curVal;
dtQoS->doEmitionAddLine(); dtQoS->doEmitionAddLine();
} }
@ -56,9 +49,9 @@ void DrawerTh_QoSScanner::run()
ssh = 0; ssh = 0;
msleep(2000); msleep(2000);
}; };
}; }
void DrawerTh_QoSScanner::doEmitionAddLine() void DrawerTh_QoSScanner::doEmitionAddLine()
{ {
emit dtQoS->sAddLine(); emit dtQoS->sAddLine();
}; }

View File

@ -1,4 +1,3 @@
#pragma once
#include "IRCPinger_Th.h" #include "IRCPinger_Th.h"
#include "externData.h" #include "externData.h"

15
Utils.h
View File

@ -11,9 +11,9 @@ struct my_equal {
my_equal( const locale loc ) : loc_(loc) {} my_equal( const locale loc ) : loc_(loc) {}
bool operator()(charT ch1, charT ch2) { bool operator()(charT ch1, charT ch2) {
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
return toupper(ch1) == toupper(ch2); return tolower(ch1) == tolower(ch2);
#else #else
return toupper(ch1, loc_) == toupper(ch2, loc_); return tolower(ch1, loc_) == tolower(ch2, loc_);
#endif #endif
} }
private: private:
@ -33,6 +33,17 @@ public:
else return -1; else return -1;
} }
template<typename T> static int ci_find_substr(const T& str1,
const char* str2c,
const locale& loc = locale()) {
std::string str2 = std::string(str2c);
auto it = std::search(str1.begin(), str1.end(), str2.begin(), str2.end(),
my_equal<typename T::value_type>(loc));
if(it != str1.end()) return it - str1.begin();
else return -1;
}
char * getProxy(); char * getProxy();
int getProxyPort(); int getProxyPort();
}; };

View File

@ -224,7 +224,7 @@ void _baSSLWorker(char *ip, char *request, char *rvBuff)
int x = 1; int x = 1;
int xx = 0; int xx = 0;
ZeroMemory(rvBuff, sizeof(rvBuff)); ZeroMemory(rvBuff, sizeof(*rvBuff));
while(xx < 512) while(xx < 512)
{ {
x = SSL_read(ssl, tempBuff, sizeof(tempBuff)); x = SSL_read(ssl, tempBuff, sizeof(tempBuff));

View File

@ -17,9 +17,9 @@
extern QJsonArray *jsonArr; extern QJsonArray *jsonArr;
extern unsigned long long gTargetsOverall, Activity; extern unsigned long long gTargetsOverall;
extern char top_level_domain[128]; extern char top_level_domain[128];
extern volatile int BA, cons, BrutingThrds, gThreads; extern volatile int cons, BrutingThrds, gThreads;
extern char **loginLst, **passLst, **wfLoginLst, **wfPassLst, **sshlpLst, **GlobalNegatives; extern char **loginLst, **passLst, **wfLoginLst, **wfPassLst, **sshlpLst, **GlobalNegatives;
extern bool trackerOK, __savingBackUpFile, globalScanFlag, MapWidgetOpened, extern bool trackerOK, __savingBackUpFile, globalScanFlag, MapWidgetOpened,
widgetIsHidden, OnlineMsgSentFlag, utfIRCFlag, HTMLDebugMode, gNegDebugMode, widgetIsHidden, OnlineMsgSentFlag, utfIRCFlag, HTMLDebugMode, gNegDebugMode,
@ -32,8 +32,10 @@ extern int found, indexIP, gMode,
gThreadDelay, AnomC1, Filt, Overl, Lowl, Alive, saved, gThreadDelay, AnomC1, Filt, Overl, Lowl, Alive, saved,
Susp, Susp,
WF, WF,
BA,
offlines, ssh, globalPinger, gPingTimeout, nickFlag, offlineFlag; offlines, ssh, globalPinger, gPingTimeout, nickFlag, offlineFlag;
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[32], extern unsigned int Activity;
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[64],
ircServer[32], ircPort[32], ircProxy[64], ircProxyPort[8], ircNick[32], ircServer[32], ircPort[32], ircProxy[64], ircProxyPort[8], ircNick[32],
trcPort[32], trcSrvPortLine[32], saveStartIP[128], saveEndIP[128], trcPort[32], trcSrvPortLine[32], saveStartIP[128], saveEndIP[128],
gRange[128], gFirstDom[128], gPorts[65536], endIP2[128], gRange[128], gFirstDom[128], gPorts[65536], endIP2[128],

View File

@ -1,5 +1,4 @@
#pragma once #include "STh.h"
#include "STh.h"
#include "mainResources.h" #include "mainResources.h"
#include "externFunctions.h" #include "externFunctions.h"
#include "externData.h" #include "externData.h"
@ -183,13 +182,13 @@ char *GetCodePage(const char *str)
}; };
} }
int Lexems::globalSearchNeg(const char *buffcpy, char *ip, int port) int globalSearchNeg(const char *buffcpy, char *ip, int port)
{ {
char negWord[256] = {0}; char negWord[256] = {0};
for(int i = 0; i < GlobalNegativeSize; i++) for(int i = 0; i < GlobalNegativeSize; ++i)
{ {
if(globalScanFlag) if(!globalScanFlag) break;
{
strcpy(negWord, GlobalNegatives[i]); strcpy(negWord, GlobalNegatives[i]);
if(strstr(buffcpy, negWord) != NULL) if(strstr(buffcpy, negWord) != NULL)
{ {
@ -209,16 +208,18 @@ int Lexems::globalSearchNeg(const char *buffcpy, char *ip, int port)
stt->doEmitionDebugFoundData("Space hit!"); stt->doEmitionDebugFoundData("Space hit!");
}; };
}; };
++Filt; ++Filt;
return -1; return -1;
}; };
};
ZeroMemory(negWord, 256); ZeroMemory(negWord, 256);
}; };
return 0; return -1;
} }
int globalSearchPrnt(char *buffcpy) int globalSearchPrnt(const char *buffcpy)
{ {
if(strstr(buffcpy, "en/_top.htm") != NULL || strstr(buffcpy, "cannon http server") != NULL if(strstr(buffcpy, "en/_top.htm") != NULL || strstr(buffcpy, "cannon http server") != NULL
|| strstr(buffcpy, "konica minolta") != NULL || strstr(buffcpy, "/eng/home_frm.htm") != NULL || strstr(buffcpy, "konica minolta") != NULL || strstr(buffcpy, "/eng/home_frm.htm") != NULL
@ -237,198 +238,125 @@ int globalSearchPrnt(char *buffcpy)
{ {
stt->doEmitionDebugFoundData("Printer detected."); stt->doEmitionDebugFoundData("Printer detected.");
}; };
return -1; return -1;
}; };
return 0;
}
int sharedDetector(char * ip, int port, const char *buffcpy) {
if(strstr(buffcpy, "401 authorization") != NULL || strstr(buffcpy, "401 unauthorized") != NULL
|| (strstr(buffcpy, "www-authenticate") != NULL && strstr(buffcpy, "401 ") != NULL )
|| strstr(buffcpy, "401 unauthorized access denied") != NULL
|| strstr(buffcpy, "401 unauthorised") != NULL || (strstr(buffcpy, "www-authenticate") != NULL
&& strstr(buffcpy, " 401\r\n") != NULL)
) {
if(strstr(buffcpy, "digest realm") != NULL && strstr(buffcpy, "basic realm") == NULL) {
return 101;
} else return 1;
};
if(strstr(buffcpy, "netwave ip camera")) return 11;
if(strstr(buffcpy, "live view / - axis")) return 12;
if(strstr(buffcpy, "vilar ipcamera")) return 13;
if(strstr(buffcpy, "window.location = \"rdr.cgi\"")) return 14;
if(strstr(buffcpy, "httpfileserver")) return 15;
if(strstr(buffcpy, "real-time ip camera monitoring system") != NULL
|| strstr(buffcpy, "server push mode") != NULL
) return 17; //Real-time IP Camera Monitoring System
if(strstr(buffcpy, "linksys.com") != NULL && strstr(buffcpy, "tm05") != NULL) return 18; //linksys.com cameras
if(strstr(buffcpy, "reecam ip camera") != NULL) return 19; //reecam cameras
if(strstr(buffcpy, "/view/viewer_index.shtml") != NULL) return 20; //axis cameras
if(strstr(buffcpy, "bridge eyeon") != NULL) return 21; //Bridge Eyeon
if(strstr(buffcpy, "ip camera control webpage") != NULL && strstr(buffcpy, "/main/cs_motion.asp") != NULL) return 22; //ip camera control
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/live/index2.html") != NULL) return 23; //network camera BB-SC384
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/viewer/live/en/live.html") != NULL) return 24; //Network Camera VB-M40
if(strstr(buffcpy, "panasonic ") != NULL && strstr(buffcpy, ":60002/snapshotjpeg") != NULL) return 25; //Panasonic wtfidonteven-camera
if(strstr(buffcpy, "sony network camera") != NULL && strstr(buffcpy, "/command/inquiry.cgi?") != NULL) return 26; //Sony Network Camera
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "src=\"webs.cgi?") != NULL) return 27; //UA Network Camera
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/viewer/live/index.html") != NULL) return 28; //Network Camera VB-M40
if(strstr(buffcpy, "lg smart ip device") != NULL) return 29; //LG Smart IP Device Camera
if(strstr(buffcpy, "/view/viewer_index.shtml") != NULL) return 20; //axis cameras
if(strstr(buffcpy, "nas") != NULL && strstr(buffcpy, "/cgi-bin/data/viostor-220/viostor/viostor.cgi") != NULL) return 30; //NAX
if(strstr(buffcpy, "ip camera") != NULL && strstr(buffcpy, "check_user.cgi") != NULL) return 31; //axis cameras
if(strstr(buffcpy, "ws(\"user\");") != NULL && strstr(buffcpy, "src=\"/tool.js") != NULL
&& strstr(buffcpy, "<b class=\"xb1\"></b>") != NULL) return 32; //web ip cam
if(strstr(buffcpy, "geovision") != NULL
&& (strstr(buffcpy, "ip camera") != NULL
|| strstr(buffcpy, "ssi.cgi/login.htm") != NULL)) return 33; //GEO web ip cam
if(strstr(buffcpy, "hikvision-webs") != NULL
|| (strstr(buffcpy, "hikvision digital") != NULL && strstr(buffcpy, "dvrdvs-webs") != NULL)
|| (strstr(buffcpy, "lapassword") != NULL && strstr(buffcpy, "lausername") != NULL && strstr(buffcpy, "dologin()") != NULL)) return 34; //hikvision cam
if((strstr(buffcpy, "easy cam") != NULL && strstr(buffcpy, "easy life") != NULL)
|| (strstr(buffcpy, "ipcamera") != NULL && strstr(buffcpy, "/tool.js") != NULL)) return 35; //EasyCam
if(strstr(buffcpy, "/config/cam_portal.cgi") != NULL || strstr(buffcpy, "/config/easy_index.cgi") != NULL) return 36; //Panasonic Cam
if(strstr(buffcpy, "panasonic") != NULL && strstr(buffcpy, "/view/getuid.cgi") != NULL) return 37; //Panasonic Cam WJ-HD180
if(strstr(buffcpy, "ipcam client") != NULL && strstr(buffcpy, "plugins.xpi") != NULL && strstr(buffcpy, "js/upfile.js") != NULL) return 38; //Foscam
if(strstr(buffcpy, "ip surveillance") != NULL && strstr(buffcpy, "customer login") != NULL) return 39; //EagleEye
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/admin/index.shtml?") != NULL) return 40; //Network Camera VB-C300
if(strstr(buffcpy, "sq-webcam") != NULL && strstr(buffcpy, "liveview.html") != NULL) return 41; //AVIOSYS-camera
if(strstr(buffcpy, "nw_camera") != NULL && strstr(buffcpy, "/cgi-bin/getuid") != NULL) return 42; //NW_camera
if(strstr(buffcpy, "micros") != NULL && strstr(buffcpy, "/gui/gui_outer_frame.shtml") != NULL) return 43; //NW_camera
if(strstr(buffcpy, "lapassword") != NULL
&& strstr(buffcpy, "lausername") != NULL
&& strstr(buffcpy, "g_ologin.dologin()") != NULL
) return 44; //hikvision cam 2
if(strstr(buffcpy, "panasonic") != NULL && strstr(buffcpy, "/config/index.cgi") != NULL) return 45; //Panasonic Cam BB-HG???
if(strstr(buffcpy, "/ui/") != NULL && strstr(buffcpy, "sencha-touch") != NULL) return 46; //BUFFALO disk
if(strstr(buffcpy, "digital video server") != NULL && strstr(buffcpy, "gui.css") != NULL) return 47; //Digital Video Server
if(strstr(buffcpy, "/ipcamerasetup.zip") != NULL && strstr(buffcpy, "download player") != NULL
&& strstr(buffcpy, "ipcam") != NULL) return 48; //ipCam
if(strstr(buffcpy, "dvr") != NULL && strstr(buffcpy, "ieorforefox") != NULL
&& strstr(buffcpy, "sofari") != NULL) return 49; //IEORFOREFOX
if (strstr(buffcpy, "seyeon") != NULL && (strstr(buffcpy, "/app/multi/single.asp") != NULL
|| strstr(buffcpy, "/app/live/sim/single.asp") != NULL)) return 50; //Network Video System
if(((strstr(buffcpy, "220") != NULL) && (port == 21)) ||
(strstr(buffcpy, "220 diskStation ftp server ready") != NULL) ||
(strstr(buffcpy, "220 ftp server ready") != NULL)
|| strstr(buffcpy, "500 'get': command not understood") != NULL
) return 16; // 16 - FTP
if((strstr(buffcpy, "camera web server") != NULL || strstr(buffcpy, "webcamxp 5") != NULL
|| strstr(buffcpy, "ip box camera") != NULL || strstr(buffcpy, "snaff") != NULL
|| strstr(buffcpy, "hfs /") != NULL || strstr(buffcpy, "httpfileserver") != NULL
|| strstr(buffcpy, "network camera") != NULL
|| strstr(buffcpy, "$lock extended") != NULL || strstr(buffcpy, "ip camera") != NULL
|| strstr(buffcpy, "/viewer/video.jpg") != NULL || strstr(buffcpy, "smart ip device") != NULL
|| strstr(buffcpy, "sanpshot_icon") != NULL || strstr(buffcpy, "snapshot_icon") != NULL
|| strstr(buffcpy, "ipcam") != NULL)
&& strstr(buffcpy, "customer") == NULL
&& strstr(buffcpy, "purchase") == NULL
&& strstr(buffcpy, "contac") == NULL
&& strstr(buffcpy, "company") == NULL
) return 0;
if(globalSearchNeg(buffcpy, ip, port) == -1) return -1;
if(globalSearchPrnt(buffcpy) == -1) return -1;
if(strstr(buffcpy, "<form ") != NULL && strstr(buffcpy, "302 found") == NULL) return 10;
return -2;
} }
// 500 < 1600 // 500 < 1600
Lexems lxf; int _mainFinderFirst(const char *buffcpy, int f, int port, char *ip)
int _mainFinderFirst(char *buffcpy, int f, int port, char *ip)
{ {
if((strstr(buffcpy, "401 authorization") != NULL || strstr(buffcpy, "401 unauthorized") != NULL || (strstr(buffcpy, "www-authenticate") != NULL && strstr(buffcpy, "401 ") != NULL ) int flag = sharedDetector(ip, port, buffcpy);
|| strstr(buffcpy, "401 unauthorized access denied") != NULL || strstr(buffcpy, "401 unauthorised") != NULL || (strstr(buffcpy, "www-authenticate") != NULL && strstr(buffcpy, " 401\r\n") != NULL) if(flag != -2) return flag;
)
&& strstr(buffcpy, "digest realm") != NULL
&& strstr(buffcpy, "basic realm") == NULL
) return 101;
if(strstr(buffcpy, "401 authorization") != NULL || strstr(buffcpy, "401 unauthorized") != NULL || (strstr(buffcpy, "www-authenticate") != NULL && strstr(buffcpy, "401 ") != NULL )
|| strstr(buffcpy, "401 unauthorized access denied") != NULL || strstr(buffcpy, "401 unauthorised") != NULL || (strstr(buffcpy, "www-authenticate") != NULL && strstr(buffcpy, " 401\r\n") != NULL)
) return 1;
if(strstr(buffcpy, "netwave ip camera")) return 11;
if(strstr(buffcpy, "live view / - axis")) return 12;
if(strstr(buffcpy, "vilar ipcamera")) return 13;
if(strstr(buffcpy, "window.location = \"rdr.cgi\"")) return 14;
if(strstr(buffcpy, "httpfileserver")) return 15;
if(((strstr(buffcpy, "220") != NULL && port == 21) ||
strstr(buffcpy, "220 diskstation ftp server ready") != NULL ||
strstr(buffcpy, "220 ftp server ready") != NULL ||
strstr(buffcpy, "500 'get': command not understood") != NULL
)
&& strstr(buffcpy, "firewall authentication required") == NULL) return 16; // 16 - FTP
if(strstr(buffcpy, "real-time ip camera monitoring system") != NULL ||
strstr(buffcpy, "server push mode") != NULL
) return 17; //Real-time IP Camera Monitoring System
if(strstr(buffcpy, "linksys.com") != NULL && strstr(buffcpy, "tm05") != NULL) return 18; //linksys.com cameras
if(strstr(buffcpy, "reecam ip camera") != NULL) return 19; //reecam cameras
if(strstr(buffcpy, "/view/viewer_index.shtml") != NULL) return 20; //axis cameras
if(strstr(buffcpy, "bridge eyeon") != NULL) return 21; //Bridge Eyeon
if(strstr(buffcpy, "ip camera control webpage") != NULL && strstr(buffcpy, "/main/cs_motion.asp") != NULL) return 22; //ip camera control
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/live/index2.html") != NULL) return 23; //network camera BB-SC384
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/viewer/live/en/live.html") != NULL) return 24; //Network Camera VB-M40
if(strstr(buffcpy, "panasonic ") != NULL && strstr(buffcpy, ":60002/snapshotjpeg") != NULL) return 25; //Panasonic wtfidonteven-camera
if(strstr(buffcpy, "sony network camera") != NULL && strstr(buffcpy, "/command/inquiry.cgi?") != NULL) return 26; //Sony Network Camera
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "src=\"webs.cgi?") != NULL) return 27; //UA Network Camera
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/viewer/live/index.html") != NULL) return 28; //Network Camera VB-M40
if(strstr(buffcpy, "lg smart ip device") != NULL) return 29; //LG Smart IP Device Camera
if(strstr(buffcpy, "nas") != NULL && strstr(buffcpy, "/cgi-bin/data/viostor-220/viostor/viostor.cgi") != NULL) return 30; //NAX
if(strstr(buffcpy, "ip camera") != NULL && strstr(buffcpy, "check_user.cgi") != NULL) return 31; //ip cams
if(strstr(buffcpy, "ws(\"user\");") != NULL && strstr(buffcpy, "src=\"/tool.js") != NULL
&& strstr(buffcpy, "<b class=\"xb1\"></b>") != NULL) return 32; //IPC web ip cam
if(strstr(buffcpy, "geovision") != NULL && (strstr(buffcpy, "ip camera") != NULL
|| strstr(buffcpy, "ssi.cgi/login.htm") != NULL)) return 33; //GEO web ip cam
if(strstr(buffcpy, "hikvision-webs") != NULL || (strstr(buffcpy, "hikvision digital") != NULL
&& strstr(buffcpy, "dvrdvs-webs") != NULL)
|| (strstr(buffcpy, "lapassword") != NULL && strstr(buffcpy, "lausername") != NULL
&& strstr(buffcpy, "dologin()") != NULL)) return 34; //hikvision cam
if((strstr(buffcpy, "easy cam") != NULL && strstr(buffcpy, "easy life") != NULL)
|| (strstr(buffcpy, "ipcamera") != NULL && strstr(buffcpy, "/tool.js") != NULL)) return 35; //EasyCam
if(strstr(buffcpy, "/config/cam_portal.cgi") != NULL || strstr(buffcpy, "/config/easy_index.cgi") != NULL) return 36; //Panasonic Cam
if(strstr(buffcpy, "panasonic") != NULL && strstr(buffcpy, "/view/getuid.cgi") != NULL) return 37; //Panasonic Cam WJ-HD180
if(strstr(buffcpy, "ipcam client") != NULL && strstr(buffcpy, "plugins.xpi") != NULL
&& strstr(buffcpy, "js/upfile.js") != NULL) return 38; //Foscam
if(strstr(buffcpy, "ip surveillance") != NULL && strstr(buffcpy, "customer login") != NULL) return 39; //EagleEye
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/admin/index.shtml?") != NULL) return 40; //Network Camera VB-C300
if(strstr(buffcpy, "sq-webcam") != NULL && strstr(buffcpy, "liveview.html") != NULL) return 41; //AVIOSYS-camera
if(strstr(buffcpy, "nw_camera") != NULL && strstr(buffcpy, "/cgi-bin/getuid") != NULL) return 42; //NW_camera
if(strstr(buffcpy, "micros") != NULL && strstr(buffcpy, "/gui/gui_outer_frame.shtml") != NULL) return 43; //NW_camera
if(strstr(buffcpy, "lapassword") != NULL
&& strstr(buffcpy, "lausername") != NULL
&& strstr(buffcpy, "g_ologin.dologin()") != NULL
) return 44; //hikvision cam 2
if(strstr(buffcpy, "panasonic") != NULL && strstr(buffcpy, "/config/index.cgi") != NULL) return 45; //Panasonic Cam BB-HG???
if(strstr(buffcpy, "/ui/") != NULL && strstr(buffcpy, "sencha-touch") != NULL) return 46; //BUFFALO disk
if(strstr(buffcpy, "digital video server") != NULL && strstr(buffcpy, "gui.css") != NULL) return 47; //Digital Video Server
if(strstr(buffcpy, "/ipcamerasetup.zip") != NULL && strstr(buffcpy, "download player") != NULL
&& strstr(buffcpy, "ipcam") != NULL) return 48; //ipCam
if(strstr(buffcpy, "dvr") != NULL && strstr(buffcpy, "ieorforefox") != NULL
&& strstr(buffcpy, "sofari") != NULL) return 49; //IEORFOREFOX
if (strstr(buffcpy, "seyeon") != NULL && (strstr(buffcpy, "/app/multi/single.asp") != NULL
|| strstr(buffcpy, "/app/live/sim/single.asp") != NULL)) return 50; //Network Video System
if((strstr(buffcpy, "camera web server") != NULL || strstr(buffcpy, "webcamxp 5") != NULL if(f) return 7;
|| strstr(buffcpy, "ip box camera") != NULL || strstr(buffcpy, "snaff") != NULL
|| strstr(buffcpy, "hfs /") != NULL || strstr(buffcpy, "httpfileserver") != NULL
|| strstr(buffcpy, "network camera") != NULL
|| strstr(buffcpy, "$lock extended") != NULL || strstr(buffcpy, "ip camera") != NULL
|| strstr(buffcpy, "/viewer/video.jpg") != NULL || strstr(buffcpy, "smart ip device") != NULL
|| strstr(buffcpy, "sanpshot_icon") != NULL || strstr(buffcpy, "snapshot_icon") != NULL
|| strstr(buffcpy, "ipcam") != NULL)
&& strstr(buffcpy, "customer") == NULL
&& strstr(buffcpy, "purchase") == NULL
&& strstr(buffcpy, "contac") == NULL
&& strstr(buffcpy, "company") == NULL
) return 0;
if(lxf.globalSearchNeg(buffcpy, ip, port) == -1) return -1;
if(globalSearchPrnt(buffcpy) == -1) return -1;
if(strstr(buffcpy, "<form ") != NULL && strstr(buffcpy, "302 found") == NULL) return 10;
if(f) return 7;
return 0; return 0;
} }
//> 1600 //> 1600
int _mainFinderSecond(char *buffcpy, int port, char *ip) int _mainFinderSecond(const char *buffcpy, int port, char *ip)
{ {
if((strstr(buffcpy, "401 authorization") != NULL || strstr(buffcpy, "401 unauthorized") != NULL int flag = sharedDetector(ip, port, buffcpy);
|| (strstr(buffcpy, "www-authenticate") != NULL && strstr(buffcpy, "401 ") != NULL ) if(flag != -2) return flag;
|| strstr(buffcpy, "401 unauthorized access denied") != NULL
|| strstr(buffcpy, "401 unauthorised") != NULL || (strstr(buffcpy, "www-authenticate") != NULL
&& strstr(buffcpy, " 401\r\n") != NULL)
)
&& strstr(buffcpy, "digest realm") != NULL && strstr(buffcpy, "basic realm") == NULL
) return 101;
if(strstr(buffcpy, "401 authorization") != NULL || strstr(buffcpy, "401 unauthorized") != NULL
|| (strstr(buffcpy, "www-authenticate") != NULL && strstr(buffcpy, "401 ") != NULL )
|| strstr(buffcpy, "401 unauthorized access denied") != NULL
|| strstr(buffcpy, "401 unauthorised") != NULL || (strstr(buffcpy, "www-authenticate") != NULL
&& strstr(buffcpy, " 401\r\n") != NULL)
) return 1;
if(strstr(buffcpy, "netwave ip camera")) return 11;
if(strstr(buffcpy, "live view / - axis")) return 12;
if(strstr(buffcpy, "vilar ipcamera")) return 13;
if(strstr(buffcpy, "window.location = \"rdr.cgi\"")) return 14;
if(strstr(buffcpy, "httpfileserver")) return 15;
if(strstr(buffcpy, "real-time ip camera monitoring system") != NULL ||
strstr(buffcpy, "server push mode") != NULL
) return 17; //Real-time IP Camera Monitoring System
if(strstr(buffcpy, "linksys.com") != NULL && strstr(buffcpy, "tm05") != NULL) return 18; //linksys.com cameras
if(strstr(buffcpy, "reecam ip camera") != NULL) return 19; //reecam cameras
if(strstr(buffcpy, "/view/viewer_index.shtml") != NULL) return 20; //axis cameras
if(strstr(buffcpy, "bridge eyeon") != NULL) return 21; //Bridge Eyeon
if(strstr(buffcpy, "ip camera control webpage") != NULL && strstr(buffcpy, "/main/cs_motion.asp") != NULL) return 22; //ip camera control
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/live/index2.html") != NULL) return 23; //network camera BB-SC384
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/viewer/live/en/live.html") != NULL) return 24; //Network Camera VB-M40
if(strstr(buffcpy, "panasonic ") != NULL && strstr(buffcpy, ":60002/snapshotjpeg") != NULL) return 25; //Panasonic wtfidonteven-camera
if(strstr(buffcpy, "sony network camera") != NULL && strstr(buffcpy, "/command/inquiry.cgi?") != NULL) return 26; //Sony Network Camera
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "src=\"webs.cgi?") != NULL) return 27; //UA Network Camera
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/viewer/live/index.html") != NULL) return 28; //Network Camera VB-M40
if(strstr(buffcpy, "lg smart ip device") != NULL) return 29; //LG Smart IP Device Camera
if(strstr(buffcpy, "/view/viewer_index.shtml") != NULL) return 20; //axis cameras
if(strstr(buffcpy, "nas") != NULL && strstr(buffcpy, "/cgi-bin/data/viostor-220/viostor/viostor.cgi") != NULL) return 30; //NAX
if(strstr(buffcpy, "ip camera") != NULL && strstr(buffcpy, "check_user.cgi") != NULL) return 31; //axis cameras
if(strstr(buffcpy, "ws(\"user\");") != NULL && strstr(buffcpy, "src=\"/tool.js") != NULL && strstr(buffcpy, "<b class=\"xb1\"></b>") != NULL) return 32; //web ip cam
if(strstr(buffcpy, "geovision") != NULL && (strstr(buffcpy, "ip camera") != NULL || strstr(buffcpy, "ssi.cgi/login.htm") != NULL)) return 33; //GEO web ip cam
if(strstr(buffcpy, "hikvision-webs") != NULL || (strstr(buffcpy, "hikvision digital") != NULL && strstr(buffcpy, "dvrdvs-webs") != NULL)
|| (strstr(buffcpy, "lapassword") != NULL && strstr(buffcpy, "lausername") != NULL && strstr(buffcpy, "dologin()") != NULL)) return 34; //hikvision cam
if((strstr(buffcpy, "easy cam") != NULL && strstr(buffcpy, "easy life") != NULL)
|| (strstr(buffcpy, "ipcamera") != NULL && strstr(buffcpy, "/tool.js") != NULL)) return 35; //EasyCam
if(strstr(buffcpy, "/config/cam_portal.cgi") != NULL || strstr(buffcpy, "/config/easy_index.cgi") != NULL) return 36; //Panasonic Cam
if(strstr(buffcpy, "panasonic") != NULL && strstr(buffcpy, "/view/getuid.cgi") != NULL) return 37; //Panasonic Cam WJ-HD180
if(strstr(buffcpy, "ipcam client") != NULL && strstr(buffcpy, "plugins.xpi") != NULL && strstr(buffcpy, "js/upfile.js") != NULL) return 38; //Foscam
if(strstr(buffcpy, "ip surveillance") != NULL && strstr(buffcpy, "customer login") != NULL) return 39; //EagleEye
if(strstr(buffcpy, "network camera") != NULL && strstr(buffcpy, "/admin/index.shtml?") != NULL) return 40; //Network Camera VB-C300
if(strstr(buffcpy, "sq-webcam") != NULL && strstr(buffcpy, "liveview.html") != NULL) return 41; //AVIOSYS-camera
if(strstr(buffcpy, "nw_camera") != NULL && strstr(buffcpy, "/cgi-bin/getuid") != NULL) return 42; //NW_camera
if(strstr(buffcpy, "micros") != NULL && strstr(buffcpy, "/gui/gui_outer_frame.shtml") != NULL) return 43; //NW_camera
if(strstr(buffcpy, "lapassword") != NULL
&& strstr(buffcpy, "lausername") != NULL
&& strstr(buffcpy, "g_ologin.dologin()") != NULL
) return 44; //hikvision cam 2
if(strstr(buffcpy, "panasonic") != NULL && strstr(buffcpy, "/config/index.cgi") != NULL) return 45; //Panasonic Cam BB-HG???
if(strstr(buffcpy, "/ui/") != NULL && strstr(buffcpy, "sencha-touch") != NULL) return 46; //BUFFALO disk
if(strstr(buffcpy, "digital video server") != NULL && strstr(buffcpy, "gui.css") != NULL) return 47; //Digital Video Server
if(strstr(buffcpy, "/ipcamerasetup.zip") != NULL && strstr(buffcpy, "download player") != NULL
&& strstr(buffcpy, "ipcam") != NULL) return 48; //ipCam
if(strstr(buffcpy, "dvr") != NULL && strstr(buffcpy, "ieorforefox") != NULL
&& strstr(buffcpy, "sofari") != NULL) return 49; //IEORFOREFOX
if (strstr(buffcpy, "seyeon") != NULL && (strstr(buffcpy, "/app/multi/single.asp") != NULL
|| strstr(buffcpy, "/app/live/sim/single.asp") != NULL)) return 50; //Network Video System
if(((strstr(buffcpy, "220") != NULL) && (port == 21)) ||
(strstr(buffcpy, "220 diskStation ftp server ready") != NULL) ||
(strstr(buffcpy, "220 ftp server ready") != NULL)
|| strstr(buffcpy, "500 'get': command not understood") != NULL
) return 16; // 16 - FTP
if((strstr(buffcpy, "camera web server") != NULL || strstr(buffcpy, "webcamxp 5") != NULL
|| strstr(buffcpy, "ip box camera") != NULL || strstr(buffcpy, "snaff") != NULL
|| strstr(buffcpy, "hfs /") != NULL || strstr(buffcpy, "httpfileserver") != NULL
|| strstr(buffcpy, "network camera") != NULL
|| strstr(buffcpy, "$lock extended") != NULL || strstr(buffcpy, "ip camera") != NULL
|| strstr(buffcpy, "/viewer/video.jpg") != NULL || strstr(buffcpy, "smart ip device") != NULL
|| strstr(buffcpy, "sanpshot_icon") != NULL || strstr(buffcpy, "snapshot_icon") != NULL
|| strstr(buffcpy, "ipcam") != NULL)
&& strstr(buffcpy, "customer") == NULL
&& strstr(buffcpy, "purchase") == NULL
&& strstr(buffcpy, "contac") == NULL
&& strstr(buffcpy, "company") == NULL
) return 0;
if(lxf.globalSearchNeg(buffcpy, ip, port) == -1) return -1;
if(globalSearchPrnt(buffcpy) == -1) return -1;
if(strstr(buffcpy, "<form ") != NULL && strstr(buffcpy, "302 found") == NULL) return 10;
return 3; //Suspicious return 3; //Suspicious
} }
@ -456,20 +384,21 @@ int ContentFilter(const char *buff, int port, char *ip, char *cp)
char *lBuff = new char[sz + 1]; char *lBuff = new char[sz + 1];
ZeroMemory(lBuff, sz + 1); ZeroMemory(lBuff, sz + 1);
strcpy(lBuff, tempString.c_str()); strcpy(lBuff, tempString.c_str());
memset(lBuff + sz, '\0', 1); memset(lBuff + sz, '\0', 1);
if(sz <= 500) if(sz <= 500)
{ {
res = _mainFinderFirst(lBuff, 1, port, ip); res = _mainFinderFirst(lBuff, 1, port, ip);
} }
else if((sz > 500 && sz <= 3500) || sz > 180000) else if((sz > 500 && sz <= 3500) || sz > 180000)
{ {
res = _mainFinderFirst(lBuff, 0, port, ip); res = _mainFinderFirst(lBuff, 0, port, ip);
} }
else if(sz > 3500 && sz <= 180000) else if(sz > 3500 && sz <= 180000)
{ {
res = _mainFinderSecond(lBuff, port, ip); res = _mainFinderSecond(lBuff, port, ip);
}; };
delete []lBuff; delete []lBuff;
return res; return res;
} }
@ -559,7 +488,6 @@ void fputsf(char *text, int flag, char *msg)
{ {
FILE *file = NULL; FILE *file = NULL;
#pragma region FileExistenceCheck
if(flag == 0 || flag == 15 || flag == -10) if(flag == 0 || flag == 15 || flag == -10)
{ {
if(ftsAnom) ftsAnom = __checkFileExistence(flag); if(ftsAnom) ftsAnom = __checkFileExistence(flag);
@ -649,7 +577,6 @@ void fputsf(char *text, int flag, char *msg)
strcat (string, "</div>"); strcat (string, "</div>");
}; };
#pragma region styleFiller
if(flag == 0 && ftsAnom) if(flag == 0 && ftsAnom)
{ {
char tmsg[1024] = {0}; char tmsg[1024] = {0};
@ -908,26 +835,8 @@ void _specFillerWF(char *hl, char *ip, char *port, char *finalstr, char *login,
++PieWF; ++PieWF;
sprintf(log, "[WF]:<span id=\"hostSpan\"><a href=\"http://%s:%d\"><font color=MediumSeaGreen>%s:%d</font></a></span> T: <font color=GoldenRod>%s</font> Pass: <font color=SteelBlue>%s:%s</font>\n" sprintf(log, "[WF]:<span id=\"hostSpan\"><a href=\"http://%s:%s\"><font color=MediumSeaGreen>%s:%s</font></a></span> T: <font color=GoldenRod>%s</font> Pass: <font color=SteelBlue>%s:%s</font>\n",
, ip, port, ip, port, finalstr, login, pass); ip, port, ip, port, finalstr, login, pass);
strcpy(log, "[WF]:");
strcat(log, "<span id=\"hostSpan\"><a href=\"http://");
strcat(log, ip);
strcat(log, ":");
strcat(log, port);
strcat(log, "\"><font color=MediumSeaGreen>");
strcat(log, ip);
strcat(log, ":");
strcat(log, port);
strcat(log, "</font></a></span> T: <font color=GoldenRod>");
strcat(log, finalstr);
strcat(log, "</font> Pass: <font color=SteelBlue>");
strcat(log, login);
strcat(log, ":");
strcat(log, pass);
strcat(log, "</font>");
strcat(log, "\n");
stt->doEmitionFoundData(QString::fromLocal8Bit(log)); stt->doEmitionFoundData(QString::fromLocal8Bit(log));

View File

@ -31,7 +31,7 @@
#include <cstring> #include <cstring>
#define ZeroMemory(Destination,Length) memset((Destination),0,(Length)) #define ZeroMemory(Destination,Length) memset((Destination),0,(Length))
#define Sleep(secs) usleep((secs)*1000) #define Sleep(msecs) usleep((msecs)*1000)
#define WSAGetLastError() errno #define WSAGetLastError() errno
#define closesocket(sock) ::close((sock)) #define closesocket(sock) ::close((sock))
@ -133,8 +133,13 @@ class Lexems
PathStr *ps, PathStr *ps,
std::vector<std::string> *lst, std::vector<std::string> *lst,
char *rBuff); char *rBuff);
int _filler(int p, const char *buffcpy, char* ipi, int recd, Lexems *lx, char *hl);
int globalSearchNeg(const char *buffcpy, char *ip, int port); int _filler(int p,
const char *buffcpy,
char* ipi,
int recd,
Lexems *lx,
char *hl);
}; };
@ -143,16 +148,39 @@ class Connector_old
public: public:
int _Updater(); int _Updater();
lopaStr _FTPLobby(char *ip, int port, PathStr *ps); lopaStr _FTPLobby(char *ip,
lopaStr _BALobby(char *cookie, char *ip, int port, char *path, char *method, char *data); int port,
lopaStr _WFLobby(char *cookie, char *ip, int port, char *methodVal, char *actionVal, char *userVal, char *passVal, char *formVal); PathStr *ps);
lopaStr _IPCameraBLobby(char *ip, int port, char *SPEC);
int _SSHLobby(char *ip, int port, std::string *buffer); lopaStr _BALobby(char *cookie,
char *ip,
int port,
char *path,
char *method,
char *data);
lopaStr _WFLobby(char *cookie,
char *ip,
int port,
char *methodVal,
char *actionVal,
char *userVal,
char *passVal,
char *formVal);
lopaStr _IPCameraBLobby(char *ip,
int port,
char *SPEC);
int _SSHLobby(char *ip,
int port,
std::string *buffer);
//int _EstablishConnection(char *ip, int port, char *request, conSTR *cstr, int force = 0);
//int _EstablishSSLConnection(char *ip, int port, char *request, conSTR *cstr);
void _Connect(void *s); void _Connect(void *s);
int _ConnectToPort(char *ip, int port, char *hl);
int _ConnectToPort(char *ip,
int port,
char *hl);
}; };

View File

@ -9,6 +9,8 @@ QT += core gui multimedia
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11 CONFIG += c++11
QMAKE_CFLAGS += -Wno-write-strings
QMAKE_CXXFLAGS += -Wno-write-strings
TARGET = nesca TARGET = nesca
TEMPLATE = app TEMPLATE = app

View File

@ -1,6 +1,4 @@
#pragma region Decls #include <QGridLayout>
#pragma once
#include <QGridLayout>
#include <QFileDialog> #include <QFileDialog>
#include "nesca_3.h" #include "nesca_3.h"
#include "CheckKey_Th.h" #include "CheckKey_Th.h"
@ -73,7 +71,7 @@ char trcSrvPortLine[32] = {0};
char trcProxy[128] = {0}; char trcProxy[128] = {0};
char trcSrv[256] = {0}; char trcSrv[256] = {0};
char trcScr[256] = {0}; char trcScr[256] = {0};
char trcPersKey[32] = {0}; char trcPersKey[64] = {0};
char gProxyIP[64] = {0}; char gProxyIP[64] = {0};
char gProxyPort[8] = {0}; char gProxyPort[8] = {0};
@ -704,7 +702,7 @@ void nesca_3::slotQoSAddLine()
fnt.setFamily("Eurostile"); fnt.setFamily("Eurostile");
fnt.setPixelSize(10); fnt.setPixelSize(10);
QGraphicsTextItem *item = sceneUpper->addText("Max = " + QString(std::to_string(MaxDataVal).c_str()), fnt); QGraphicsTextItem *item = sceneUpper->addText("Max = " + QString::number(MaxDataVal), fnt);
item->setX(215); item->setX(215);
item->setDefaultTextColor(Qt::white); item->setDefaultTextColor(Qt::white);
QOSWait = false; QOSWait = false;
@ -747,38 +745,39 @@ void nesca_3::slotAddPolyLine()
if(ME2ScanFlag) if(ME2ScanFlag)
{ {
QPainterPath path; QPainterPath path;
if (DrawerTh_ME2Scanner::polyVect.size() > 0) if (DrawerTh_ME2Scanner::polyVect.count() > 0)
{ {
path.moveTo(DrawerTh_ME2Scanner::polyVect[0]); path.moveTo(DrawerTh_ME2Scanner::polyVect[0]);
for (int i = 1; i < DrawerTh_ME2Scanner::polyVect.count(); ++i) for (int i = 1; i < DrawerTh_ME2Scanner::polyVect.count(); ++i)
{ {
path.lineTo(DrawerTh_ME2Scanner::polyVect[i]); path.lineTo(DrawerTh_ME2Scanner::polyVect[i]);
}; };
}; };
QGraphicsPathItem* itm = new QGraphicsPathItem(path); QGraphicsPathItem* itm = new QGraphicsPathItem(path);
itm->setPen(pen2i); itm->setPen(pen2i);
DrawerTh_ME2Scanner::itmList.push_front(itm); sceneGraph->addItem(itm);
DrawerTh_ME2Scanner::itmList.push_front(itm);
int u = 0; int u = 0;
double uu = 1.0; double uu = 1.0;
for (int i = 0; i < DrawerTh_ME2Scanner::itmList.count(); ++i) for (int i = 0; i < DrawerTh_ME2Scanner::itmList.count(); ++i)
{ {
itm = DrawerTh_ME2Scanner::itmList[i];
int y = u - i - 1; int y = u - i - 1;
itm->setY(y); itm = DrawerTh_ME2Scanner::itmList[i];
itm->setOpacity(uu); itm->setY(y);
sceneGraph->addItem(itm); itm->setOpacity(uu);
uu -= 0.027; uu -= 0.027;
u -= 1; u -= 1;
}; };
while (DrawerTh_ME2Scanner::itmList.count() > 38) while (DrawerTh_ME2Scanner::itmList.count() > 38)
{ {
sceneGraph->removeItem(DrawerTh_ME2Scanner::itmList[38]); sceneGraph->removeItem(DrawerTh_ME2Scanner::itmList[38]);
delete DrawerTh_ME2Scanner::itmList[38]; delete DrawerTh_ME2Scanner::itmList[38];
DrawerTh_ME2Scanner::itmList.pop_back(); DrawerTh_ME2Scanner::itmList.pop_back();
}; };
}; };
} }
@ -1292,6 +1291,10 @@ void nesca_3::slotBlinkMessage()
}; };
} }
void nesca_3::slotTabChanged(int index){
if(index < 2) savedTabIndex = index;
}
void nesca_3::ChangeDispalyMode() void nesca_3::ChangeDispalyMode()
{ {
if(widgetIsHidden == false && tray->isVisible() == false) if(widgetIsHidden == false && tray->isVisible() == false)
@ -1341,8 +1344,8 @@ void nesca_3::switchToJobMode()
void nesca_3::CheckProxy() void nesca_3::CheckProxy()
{ {
saveOptions(); saveOptions();
_SaveBackupToFile();
QStringList qsl; QStringList qsl;
if(ui->ircProxy->text().contains(":")) if(ui->ircProxy->text().contains(":"))
{ {
@ -1371,8 +1374,6 @@ void nesca_3::slotIRCOfflined()
void nesca_3::ConnectToIRCServer() void nesca_3::ConnectToIRCServer()
{ {
saveOptions();
_SaveBackupToFile();
QStringList qsl; QStringList qsl;
if(ui->ircServerBox->text().contains(":")) if(ui->ircServerBox->text().contains(":"))
{ {
@ -1381,14 +1382,15 @@ void nesca_3::ConnectToIRCServer()
ui->ircServerBox->setText(qsl[0]); ui->ircServerBox->setText(qsl[0]);
ui->serverPortBox->setText(qsl[1]); ui->serverPortBox->setText(qsl[1]);
}; };
if(ui->ircProxy->text().contains(":")) if(ui->ircProxy->text().contains(":"))
{ {
qsl = ui->ircProxy->text().split(":"); qsl = ui->ircProxy->text().split(":");
ui->ircProxy->setText(qsl[0]); ui->ircProxy->setText(qsl[0]);
ui->ircProxyPort->setText(qsl[1]); ui->ircProxyPort->setText(qsl[1]);
}; };
saveOptions();
if(ui->ircServerBox->text() != "") if(ui->ircServerBox->text() != "")
{ {
if(ui->serverPortBox->text() != "") if(ui->serverPortBox->text() != "")
@ -1445,6 +1447,8 @@ void nesca_3::ConnectToIRCServer()
ui->ircText->append("<span style=\"color:red;background-color:#313131;\">No IRC server specified!</span>"); ui->ircText->append("<span style=\"color:red;background-color:#313131;\">No IRC server specified!</span>");
}; };
saveOptions();
} }
void nesca_3::ChangeIRCRawLog() void nesca_3::ChangeIRCRawLog()
@ -1475,8 +1479,8 @@ void nesca_3::ChangeNick()
void nesca_3::CheckPersKey() void nesca_3::CheckPersKey()
{ {
emitIfOK = -1; emitIfOK = -1;
saveOptions(); saveOptions();
_SaveBackupToFile();
if(!chKTh->isRunning()) if(!chKTh->isRunning())
{ {
stt->doEmitionYellowFoundData("[Key check] Starting checker-thread..."); stt->doEmitionYellowFoundData("[Key check] Starting checker-thread...");
@ -1491,8 +1495,8 @@ void nesca_3::CheckPersKey()
void nesca_3::CheckPersKey(int val = -1) void nesca_3::CheckPersKey(int val = -1)
{ {
emitIfOK = val; emitIfOK = val;
saveOptions(); saveOptions();
_SaveBackupToFile();
if(!chKTh->isRunning()) if(!chKTh->isRunning())
{ {
stt->doEmitionYellowFoundData("[Key check] Starting checker-thread..."); stt->doEmitionYellowFoundData("[Key check] Starting checker-thread...");
@ -1595,6 +1599,17 @@ bool nesca_3::eventFilter(QObject* obj, QEvent *event)
}; };
return false; return false;
} }
else if (obj == qwm)
{
///TODO: raise parent window with qwm
// if(event->type() == QEvent::MouseButtonPress)
// {
// Qt::WindowFlags eFlags = windowFlags ();
// eFlags |= Qt::WindowStaysOnTopHint;
// setWindowFlags(eFlags);
// return true;
// };
}
else else
{ {
if (event->type() == QEvent::KeyPress) if (event->type() == QEvent::KeyPress)
@ -1864,7 +1879,7 @@ void nesca_3::slotIRCGetTopic(QString str)
int c = 1; int c = 1;
void nesca_3::slotSaveImage(QAction *qwe) void nesca_3::slotSaveImage()
{ {
QObject *smB = this->sender(); QObject *smB = this->sender();
int ci = ui->tabMainWidget->currentIndex(); int ci = ui->tabMainWidget->currentIndex();
@ -1916,7 +1931,7 @@ void nesca_3::slotSaveImage(QAction *qwe)
} }
else else
{ {
QString fn = QString::number(QT.msec()) + "_" + (PieStatFlag ? "PieStat" : "QOS") + "_" + (ci == 0 ? ui->ipLine->text() : ui->lineEditStartIPDNS->text()) + ".png"; QString fn = QString::number(QT.msec()) + "_" + (PieStatFlag ? "PieStat" : "QoS") + "_" + (ci == 0 ? ui->ipLine->text() : ui->lineEditStartIPDNS->text()) + ".png";
QPixmap pixmap(ui->graphicLog->width(), ui->graphicLog->height()); QPixmap pixmap(ui->graphicLog->width(), ui->graphicLog->height());
QPainter painter(&pixmap); QPainter painter(&pixmap);
@ -1949,7 +1964,7 @@ void PieStatView::contextMenuEvent(QContextMenuEvent *event)
menuPS->addAction("Save image."); menuPS->addAction("Save image.");
menuPS->popup(event->globalPos()); menuPS->popup(event->globalPos());
connect(menuPS, SIGNAL(triggered(QAction *)), gthis, SLOT(slotSaveImage(QAction *))); connect(menuPS, SIGNAL(triggered()), gthis, SLOT(slotSaveImage()));
} }
QLabel *msgLbl; QLabel *msgLbl;
@ -2043,7 +2058,8 @@ void nesca_3::slotShowDataflow()
MapWidgetOpened = true; MapWidgetOpened = true;
ui->DataflowModeBut->setStyleSheet("background-color: rgba(2, 2, 2, 0);border: 1px solid rgba(0, 214, 0, 40);color: rgb(0, 214, 0);"); ui->DataflowModeBut->setStyleSheet("background-color: rgba(2, 2, 2, 0);border: 1px solid rgba(0, 214, 0, 40);color: rgb(0, 214, 0);");
qwm = new QWidget(); qwm = new QWidget();
qwm->setWindowFlags(Qt::FramelessWindowHint|Qt::SubWindow); qwm->setWindowFlags(Qt::FramelessWindowHint|Qt::SubWindow);
qwm->installEventFilter(this);
qwm->setStyleSheet( qwm->setStyleSheet(
"background-color:qlineargradient(spread:pad, x1:0.541, y1:0.500364, x2:0.54, y2:0, stop:0 rgba(16, 16, 16, 255), stop:1 rgba(0, 0, 0, 255));" "background-color:qlineargradient(spread:pad, x1:0.541, y1:0.500364, x2:0.54, y2:0, stop:0 rgba(16, 16, 16, 255), stop:1 rgba(0, 0, 0, 255));"
"border: 1px solid #616161;"); "border: 1px solid #616161;");
@ -2186,22 +2202,26 @@ void nesca_3::slotOutData(QString ip, QString str)
{ {
_rOutPath.indexIn(str); _rOutPath.indexIn(str);
QString prot = _rOutPath.cap(0); QString prot = _rOutPath.cap(0);
if(prot.size() > 0) str.replace(prot, " <font color=\"Turquoise\">" + prot + "</font> "); if(prot.size() > 0) str.replace(prot, "<font color=\"Turquoise\">" + prot + "</font>");
_rOutHost.indexIn(str); _rOutHost.indexIn(str);
prot = _rOutHost.cap(1); prot = _rOutHost.cap(1);
if(prot.size() > 0) str.replace(prot, " <font color=\"Turquoise\">" + prot + "</font> "); if(prot.size() > 0) str.replace(prot, "<font color=\"Turquoise\">" + prot + "</font>");
str.replace("HTTP ", "<font color=\"GoldenRod\">HTTP </font>");
str.replace("GET ", "<font color=\"GoldenRod\">GET </font>"); str.replace("GET ", "<font color=\"GoldenRod\">GET </font>");
str.replace("POST ", "<font color=\"GoldenRod\">POST </font>"); str.replace("POST ", "<font color=\"GoldenRod\">POST </font>");
str.replace("Host: ", "<font color=\"GoldenRod\">Host: </font>"); str.replace("Host: ", "<font color=\"GoldenRod\">Host: </font>");
str.replace("Cookie: ", "<font color=\"GoldenRod\">Cookie: </font>"); str.replace("Cookie: ", "<font color=\"GoldenRod\">Cookie: </font>");
str.replace("Accept:", "<font color=\"GoldenRod\">Accept:</font>");
str.replace("Accept-Language:", "<font color=\"GoldenRod\">Accept-Language:</font>"); str.replace("Accept-Language:", "<font color=\"GoldenRod\">Accept-Language:</font>");
str.replace("Accept-Charset:", "<font color=\"GoldenRod\">Accept-Charset:</font>"); str.replace("Accept-Charset:", "<font color=\"GoldenRod\">Accept-Charset:</font>");
str.replace("Accept-Encoding:", "<font color=\"GoldenRod\">Accept-Encoding:</font>"); str.replace("Accept-Encoding:", "<font color=\"GoldenRod\">Accept-Encoding:</font>");
str.replace("User-Agent:", "<font color=\"GoldenRod\">User-Agent:</font>"); str.replace("Accept:", "<font color=\"GoldenRod\">Accept:</font>");
str.replace("User-Agent:", "<font color=\"GoldenRod\">User-Agent:</font>");
str.replace("Proxy-Connection:", "<font color=\"GoldenRod\">Proxy-Connection:</font>");
str.replace("Connection:", "<font color=\"GoldenRod\">Connection:</font>"); str.replace("Connection:", "<font color=\"GoldenRod\">Connection:</font>");
str.replace("Content-Length:", "<font color=\"GoldenRod\">Content-Length:</font>"); str.replace("Content-Length:", "<font color=\"GoldenRod\">Content-Length:</font>");
str.replace("Authorization:", "<font color=\"GoldenRod\">Authorization:</font>"); str.replace("Authorization:", "<font color=\"GoldenRod\">Authorization:</font>");
str.replace("X-Nescav3:", "<font color=\"GoldenRod\">X-Nescav3:</font>");
_rOutProt.indexIn(str); _rOutProt.indexIn(str);
prot = _rOutProt.cap(0); prot = _rOutProt.cap(0);
if(prot.size() > 0) str.replace(prot, "<font color=\"GoldenRod\">" + prot + "</font>"); if(prot.size() > 0) str.replace(prot, "<font color=\"GoldenRod\">" + prot + "</font>");
@ -2251,14 +2271,12 @@ void nesca_3::slotIncData(QString ip, QString str)
str.replace(tagRes, "<font color=\"GoldenRod\">" + tagRes + "</font>"); str.replace(tagRes, "<font color=\"GoldenRod\">" + tagRes + "</font>");
}; };
tStr.replace(tagRes, ""); tStr.replace(tagRes, "");
}; };
str.replace("HTTP/1.1", "<font color=\"GoldenRod\">HTTP/1.1</font>"); str.replace("HTTP/1.0", "<font color=\"GoldenRod\">HTTP/1.0</font>");
str.replace("HTTP/1.1", "<font color=\"GoldenRod\">HTTP/1.1</font>");
str.replace("\r\n", "<br>"); str.replace("\r\n", "<br>");
RecvData->append("<font color=\"#F0FFFF\">[" + ip + "]</font><br>[HEAD]<br>" + str + "<hr><br>"); RecvData->append("<font color=\"#F0FFFF\">[" + ip + "]</font><br>[HEAD]<br>" + str + "<hr><br>");
_rIncTags1.setMinimal(true); _rIncTags1.setMinimal(true);
_rIncInnerTags.setMinimal(true); _rIncInnerTags.setMinimal(true);
@ -2930,6 +2948,72 @@ void nesca_3::ConnectEvrthng()
connect ( vsTh, SIGNAL(sDrawTextPlacers()), this, SLOT(slotDrawTextPlacers())); connect ( vsTh, SIGNAL(sDrawTextPlacers()), this, SLOT(slotDrawTextPlacers()));
connect ( psTh, SIGNAL(sUpdatePie()), this, SLOT(slotUpdatePie()) ); connect ( psTh, SIGNAL(sUpdatePie()), this, SLOT(slotUpdatePie()) );
connect ( irc_nmb, SIGNAL(sBlinkMessage()), this, SLOT(slotBlinkMessage()) ); connect ( irc_nmb, SIGNAL(sBlinkMessage()), this, SLOT(slotBlinkMessage()) );
connect ( ui->tabMainWidget, SIGNAL(currentChanged(int)), this, SLOT(slotTabChanged(int)) );
}
void nesca_3::saveOptions()
{
ZeroMemory(saveStartIP, sizeof(saveStartIP));
ZeroMemory(endIP2, sizeof(endIP2));
ZeroMemory(top_level_domain, sizeof(top_level_domain));
ZeroMemory(gPorts, sizeof(gPorts));
if(savedTabIndex == 0)
{
gMode = 0;
gThreads = ui->threadLine->text().toInt();
int indexof = ui->ipLine->text().indexOf("-");
if(indexof > 0)
{
strncpy(saveStartIP, ui->ipLine->text().toLocal8Bit().data(), indexof);
if(ui->ipLine->text().indexOf("/") < 0) strcpy(endIP2, ui->ipLine->text().toLocal8Bit().data());
}
else
{
if(ui->ipLine->text().indexOf("/") < 0)
{
strcpy(endIP2, ui->ipLine->text().toLocal8Bit().data());
strcat(endIP2, "-");
strcat(endIP2, ui->ipLine->text().toLocal8Bit().data());
}
else
{
strncpy(saveStartIP, ui->ipLine->text().toLocal8Bit().data(), ui->ipLine->text().indexOf("/"));
};
};
strncpy(gPorts, ("-p" + ui->portLine->text()).toLocal8Bit().data(), 65536);
gPorts[ui->lineEditPort->text().size()] = '\0';
}
else if(savedTabIndex == 1)
{
gMode = 1;
gThreads = ui->lineEditThread->text().toInt();
strcpy(saveStartIP, ui->lineEditStartIPDNS->text().toLocal8Bit().data());
strcpy(endIP2, ui->lineEditStartIPDNS->text().toLocal8Bit().data());
strcpy(top_level_domain, ui->lineILVL->text().toLocal8Bit().data());
strncpy(gPorts, ("-p" + ui->lineEditPort->text()).toLocal8Bit().data(), 65536);
gPorts[ui->lineEditPort->text().size()] = '\0';
};
strcpy(trcSrv, ui->lineTrackerSrv->text().toLocal8Bit().data());
strcpy(trcScr, ui->lineTrackerScr->text().toLocal8Bit().data());
strncpy(trcPersKey, ui->linePersKey->text().toLocal8Bit().data(), 32);
memset(trcPersKey + 32, '\0', 1);
strcpy(trcSrvPortLine, ui->trcSrvPortLine->text().toLocal8Bit().data());
strcpy(ircServer, ui->ircServerBox->text().toLocal8Bit().data());
strcpy(ircPort, ui->serverPortBox->text().toLocal8Bit().data());
strcpy(ircProxy, ui->ircProxy->text().toLocal8Bit().data());
strcpy(ircProxyPort, ui->ircProxyPort->text().toLocal8Bit().data());
strcpy(ircNick, ui->ircNickBox->text().toLocal8Bit().data());
strncpy(gProxyIP, ui->systemProxyIP->text().toLocal8Bit().data(), 64);
gProxyIP[ui->systemProxyIP->text().size()] = '\0';
strncpy(gProxyPort, ui->systemProxyPort->text().toLocal8Bit().data(), 8);
gProxyPort[ui->systemProxyPort->text().size()] = '\0';
_SaveBackupToFile();
} }
QString loadNescaSetup(char *resStr, char *option) { QString loadNescaSetup(char *resStr, char *option) {
@ -3001,12 +3085,17 @@ void RestoreSession()
} }
else if(gMode == 1) else if(gMode == 1)
{ {
ui->lineEditStartIPDNS->setText(QString(lex)); QString qLex(lex);
qLex.replace("[az]", "\\l");
qLex.replace("[0z]", "\\w");
qLex.replace("[09]", "\\d");
ui->lineEditStartIPDNS->setText(qLex);
lex = strtok(NULL, " "); lex = strtok(NULL, " ");
strcpy(gFirstDom, lex); strcpy(gFirstDom, lex);
lex = strtok(NULL, " "); lex = strtok(NULL, " ");
gThreads = atoi(lex); gThreads = atoi(lex);
ui->lineEditThread->setText(QString(lex)); ui->lineEditThread->setText(QString(lex));
ui->lineILVL->setText(QString(gFirstDom)); ui->lineILVL->setText(QString(gFirstDom));
ui->tabMainWidget->setCurrentIndex(1); ui->tabMainWidget->setCurrentIndex(1);
@ -3072,9 +3161,11 @@ void RestoreSession()
else if (strstr(resStr, "[THREAD_DELAY]:") != NULL) ui->threadDelayBox->setText(loadNescaSetup(resStr, "[THREAD_DELAY]:").simplified()); else if (strstr(resStr, "[THREAD_DELAY]:") != NULL) ui->threadDelayBox->setText(loadNescaSetup(resStr, "[THREAD_DELAY]:").simplified());
else if (strstr(resStr, "[TIMEOUT]:") != NULL) { else if (strstr(resStr, "[TIMEOUT]:") != NULL) {
const QString &tempLex = loadNescaSetup(resStr, "[TIMEOUT]:"); const QString &tempLex = loadNescaSetup(resStr, "[TIMEOUT]:");
ui->iptoLine_value->setText(tempLex); if(tempLex.toInt() > 0) {
ui->iptoLine_value_2->setText(tempLex); ui->iptoLine_value->setText(tempLex);
ui->iptoLine_value_3->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, "[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, "[PERSKEY]:") != NULL) ui->linePersKey->setText(loadNescaSetup(resStr, "[PERSKEY]:").simplified());
@ -3090,7 +3181,7 @@ void RestoreSession()
fclose(resFile); fclose(resFile);
stt->doEmitionGreenFoundData("Previous session restored."); stt->doEmitionGreenFoundData("Previous session loaded.");
}; };
} }
@ -3176,8 +3267,8 @@ void _startMsgCheck()
this->hide(); this->hide();
gthis = this; gthis = this;
ui->setupUi(this); ui->setupUi(this);
ui->widgetIRC->installEventFilter(this); ui->widgetIRC->installEventFilter(this);
ui->shoutBox->installEventFilter(this); ui->shoutBox->installEventFilter(this);
setSomeStyleArea(); setSomeStyleArea();
ui->IRCModeChangerBut->setVisible(false); ui->IRCModeChangerBut->setVisible(false);
@ -3208,8 +3299,7 @@ void _startMsgCheck()
CreateVerFile(); CreateVerFile();
RestoreSession(); RestoreSession();
saveOptions();
PhraseLog.push_back(""); PhraseLog.push_back("");
CreateMsgPopupWidget(); CreateMsgPopupWidget();
@ -3317,84 +3407,6 @@ void nesca_3::ChangeDebugFileState(bool val)
debugFileOK = val; debugFileOK = val;
} }
void nesca_3::saveOptions()
{
int ci = ui->tabMainWidget->currentIndex();
if(ci == 0)
{
ZeroMemory(saveStartIP, sizeof(saveStartIP));
ZeroMemory(endIP2, sizeof(endIP2));
ZeroMemory(top_level_domain, sizeof(top_level_domain));
ZeroMemory(gPorts, sizeof(gPorts));
gMode = 0;
gThreads = ui->threadLine->text().toInt();
int indexof = ui->ipLine->text().indexOf("-");
if(indexof > 0)
{
strncpy(saveStartIP, ui->ipLine->text().toLocal8Bit().data(), indexof);
if(ui->ipLine->text().indexOf("/") < 0) strcpy(endIP2, ui->ipLine->text().toLocal8Bit().data());
}
else
{
if(ui->ipLine->text().indexOf("/") < 0)
{
strcpy(saveStartIP, ui->ipLine->text().toLocal8Bit().data());
strcpy(endIP2, ui->ipLine->text().toLocal8Bit().data());
strcat(endIP2, "-");
strcat(endIP2, ui->ipLine->text().toLocal8Bit().data());
}
else
{
strncpy(saveStartIP, ui->ipLine->text().toLocal8Bit().data(), ui->ipLine->text().indexOf("/"));
};
};
strncpy(gPorts, ("-p" + ui->portLine->text()).toLocal8Bit().data(), 65536);
}
else if(ci == 1)
{
ZeroMemory(saveStartIP, sizeof(saveStartIP));
ZeroMemory(endIP2, sizeof(endIP2));
ZeroMemory(top_level_domain, sizeof(top_level_domain));
ZeroMemory(gPorts, sizeof(gPorts));
gMode = 1;
gThreads = ui->lineEditThread->text().toInt();
int indexof = ui->lineEditStartIPDNS->text().indexOf("/");
if(indexof > 0)
{
strncpy(saveStartIP, ui->lineEditStartIPDNS->text().toLocal8Bit().data(), indexof);
strcpy(endIP2, ui->lineEditStartIPDNS->text().toLocal8Bit().data());
}
else
{
strcpy(saveStartIP, ui->lineEditStartIPDNS->text().toLocal8Bit().data());
strcpy(endIP2, ui->lineEditStartIPDNS->text().toLocal8Bit().data());
strcat(endIP2, "/");
strcat(endIP2, ui->lineEditStartIPDNS->text().toLocal8Bit().data());
};
strcpy(top_level_domain, ui->lineILVL->text().toLocal8Bit().data());
strncpy(gPorts, ("-p" + ui->lineEditPort->text()).toLocal8Bit().data(), 65536);
};
strcpy(trcSrv, ui->lineTrackerSrv->text().toLocal8Bit().data());
strcpy(trcScr, ui->lineTrackerScr->text().toLocal8Bit().data());
strncpy(trcPersKey, ui->linePersKey->text().toLocal8Bit().data(), 32);
strcpy(trcSrvPortLine, ui->trcSrvPortLine->text().toLocal8Bit().data());
strcpy(ircServer, ui->ircServerBox->text().toLocal8Bit().data());
strcpy(ircPort, ui->serverPortBox->text().toLocal8Bit().data());
strcpy(ircProxy, ui->ircProxy->text().toLocal8Bit().data());
strcpy(ircProxyPort, ui->ircProxyPort->text().toLocal8Bit().data());
strcpy(ircNick, ui->ircNickBox->text().toLocal8Bit().data());
strncpy(gProxyIP, ui->systemProxyIP->text().toLocal8Bit().data(), 64);
strncpy(gProxyPort, ui->systemProxyPort->text().toLocal8Bit().data(), 8);
_SaveBackupToFile();
}
void nesca_3::STTTerminate() void nesca_3::STTTerminate()
{ {
importFileName = ""; importFileName = "";
@ -3571,7 +3583,8 @@ void nesca_3::logoLabelClicked()
void nesca_3::ChangeLabelTO_ValueChanged(QString str) void nesca_3::ChangeLabelTO_ValueChanged(QString str)
{ {
gTimeOut = str.toInt(); int gto = str.toInt();
gTimeOut = gto > 0 ? gto : 1;
} }
void nesca_3::ChangeLabelThreads_ValueChanged(QString str) void nesca_3::ChangeLabelThreads_ValueChanged(QString str)
@ -3723,7 +3736,6 @@ void nesca_3::appendDefaultIRCText(bool pm, bool hlflag, QString str, QString se
{ {
bool thisIsUrl = false; bool thisIsUrl = false;
#pragma region Color-handler
int pos = 0; int pos = 0;
QString colRes; QString colRes;
while ((pos = colr.indexIn(str, pos)) != -1) while ((pos = colr.indexIn(str, pos)) != -1)
@ -3735,8 +3747,6 @@ void nesca_3::appendDefaultIRCText(bool pm, bool hlflag, QString str, QString se
thisIsUrl = true; thisIsUrl = true;
}; };
#pragma region Bold-handler
int posBold = 0; int posBold = 0;
QString boldRes; QString boldRes;
boldr.setMinimal(true); boldr.setMinimal(true);
@ -3750,8 +3760,6 @@ void nesca_3::appendDefaultIRCText(bool pm, bool hlflag, QString str, QString se
thisIsUrl = true; thisIsUrl = true;
}; };
#pragma region underline-handler
int posUnder = 0; int posUnder = 0;
QString underRes; QString underRes;
under.setMinimal(true); under.setMinimal(true);
@ -3765,8 +3773,6 @@ void nesca_3::appendDefaultIRCText(bool pm, bool hlflag, QString str, QString se
thisIsUrl = true; thisIsUrl = true;
}; };
#pragma region link-handler
r.indexIn(str); r.indexIn(str);
QString link = r.cap(0); QString link = r.cap(0);
if(link.size() != 0) if(link.size() != 0)

View File

@ -52,7 +52,7 @@ public:
void newListItem(QString str); void newListItem(QString str);
static int perc; static int perc;
private: private:
int savedTabIndex;
protected: protected:
bool eventFilter(QObject* obj, QEvent *event); bool eventFilter(QObject* obj, QEvent *event);
void run(); void run();
@ -79,6 +79,7 @@ protected:
void slotAppendIRCNick(QString str); void slotAppendIRCNick(QString str);
void slotShowNicks(); void slotShowNicks();
void slotBlinkMessage(); void slotBlinkMessage();
void slotTabChanged(int index);
void IPScanSeq(); void IPScanSeq();
void DNSScanSeq(); void DNSScanSeq();
void ImportScanSeq(); void ImportScanSeq();
@ -87,7 +88,7 @@ protected:
void slotOutData(QString ip, QString str); void slotOutData(QString ip, QString str);
void slotIncData(QString ip, QString str); void slotIncData(QString ip, QString str);
void slotShowServerMsg(QString str); void slotShowServerMsg(QString str);
void slotSaveImage(QAction *qwe); void slotSaveImage();
void slotUpdatePie(); void slotUpdatePie();
void slotClearLogs(); void slotClearLogs();
void slotRestartIRC(); void slotRestartIRC();

View File

@ -1748,8 +1748,8 @@ border-radius: 3px;</string>
</property> </property>
<property name="font"> <property name="font">
<font> <font>
<family>Consolas</family> <family>Eurostile</family>
<stylestrategy>PreferDefault</stylestrategy> <pointsize>9</pointsize>
</font> </font>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
@ -1774,7 +1774,7 @@ border-radius: 3px;</string>
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Consolas'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Eurostile'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="cursorWidth"> <property name="cursorWidth">
@ -2537,7 +2537,7 @@ p, li { white-space: pre-wrap; }
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Eurostile'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Eurostile'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="cursorWidth"> <property name="cursorWidth">
@ -3521,7 +3521,7 @@ background-color: #000000;</string>
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Eurostile'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Eurostile'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="acceptRichText"> <property name="acceptRichText">
@ -3657,7 +3657,7 @@ p, li { white-space: pre-wrap; }
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Eurostile'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Eurostile'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="acceptRichText"> <property name="acceptRichText">

View File

@ -1,5 +1,4 @@
#pragma once #include "STh.h"
#include "STh.h"
#include "mainResources.h" #include "mainResources.h"
#include "externData.h" #include "externData.h"
#include "externFunctions.h" #include "externFunctions.h"
@ -31,8 +30,11 @@ int isActive = 0;
int MaxPass = 0, MaxLogin = 0, MaxTags = 0, MaxWFLogin = 0, MaxWFPass = 0, MaxSSHPass = 0; int MaxPass = 0, MaxLogin = 0, MaxTags = 0, MaxWFLogin = 0, MaxWFPass = 0, MaxSSHPass = 0;
int ipsstart[4], ipsend[4], int ipsstart[4], ipsend[4],
overallPorts, flCounter, octet[4]; overallPorts, flCounter, octet[4];
unsigned char **ipsstartfl = NULL, **ipsendfl = NULL, **starterIP = NULL; int BA = 0;
int gPingTimeout = 1; int gPingTimeout = 1;
unsigned int Activity = 0;
unsigned char **ipsstartfl = NULL, **ipsendfl = NULL, **starterIP = NULL;
double ips = 0; double ips = 0;
char top_level_domain[128] = {0}; char top_level_domain[128] = {0};
char endIP2[128] = {0}; char endIP2[128] = {0};
@ -54,10 +56,9 @@ char metaETA[256] = {0};
char metaOffline[256] = {0}; char metaOffline[256] = {0};
bool ErrLogFirstTime = true; bool ErrLogFirstTime = true;
bool gPingNScan = false; bool gPingNScan = false;
unsigned long long gTargets = 0, gTargetsOverall = 1, targets, Activity = 0; long long unsigned int gTargets = 0, gTargetsOverall = 1, targets;
volatile int gThreads; volatile int gThreads;
volatile int cons = 0; volatile int cons = 0;
volatile int BA = 0;
volatile int BrutingThrds = 0; volatile int BrutingThrds = 0;
volatile int threads = 20; volatile int threads = 20;
@ -148,11 +149,10 @@ __asm
lock inc cons; lock inc cons;
}; };
#else #else
asm("lock incl cons"); asm("lock; incl cons");
#endif #endif
stt->doEmitionThreads(QString::number(cons) + "/" + QString::number(gThreads)); stt->doEmitionThreads(QString::number(cons) + "/" + QString::number(gThreads));
} }
void ConDec() void ConDec()
@ -165,19 +165,18 @@ void ConDec()
lock dec cons; lock dec cons;
}; };
#else #else
asm("lock decl cons"); asm("lock; decl cons");
#endif #endif
}; };
stt->doEmitionThreads(QString::number(cons) + "/" + QString::number(gThreads)); stt->doEmitionThreads(QString::number(cons) + "/" + QString::number(gThreads));
} }
void _SaveBackupToFile() void _SaveBackupToFile()
{ {
char saveStr[512] = {0}; char saveStr[512] = {0};
char saveBuffer[65536] = {0}; char saveBuffer[4096] = {0};
char endStr[128] = {0}; char endStr[128] = {0};
if(gMode == 0 || gMode == 1) if(gMode == 0 || gMode == 1)
@ -189,24 +188,24 @@ void _SaveBackupToFile()
else else
{ {
if(strstr(endIP2, "-") != NULL) strcpy(endStr, strstr(endIP2, "-")); if(strstr(endIP2, "-") != NULL) strcpy(endStr, strstr(endIP2, "-"));
else if(strstr(endIP2, "/") != NULL) strcpy(endStr, strstr(endIP2, "/")); else if(strstr(endIP2, "/") != NULL) strcpy(endStr, strstr(endIP2, "/"));
else else
{ {
char temp[512] = {0}; char temp[512] = {0};
strncpy(temp, endIP2, 512); strncpy(temp, endIP2, 512);
strcat(endIP2, "-"); strcat(endIP2, "-");
strcat(endIP2, temp); strcat(endIP2, temp);
strcpy(endStr, strstr(endIP2, "-")); strcpy(endStr, strstr(endIP2, "-"));
}; };
}; };
if(strlen(endIP2) > 0) if(strlen(endStr) > 0)
{ {
strcpy(saveStr, "[SESSION]:"); strcpy(saveStr, "[SESSION]:");
strcat(saveStr, std::to_string(gMode).c_str()); strcat(saveStr, std::to_string(gMode).c_str());
strcat(saveStr, " "); strcat(saveStr, " ");
if(gMode == 0) strcat(saveStr, saveStartIP); if(gMode == 0) strcat(saveStr, saveStartIP);
strcat(saveStr, endStr); strcat(saveStr, endStr);
if(gMode == 1) if(gMode == 1)
{ {
strcat(saveStr, " "); strcat(saveStr, " ");
@ -363,7 +362,7 @@ void _SaveBackupToFile()
ZeroMemory(saveStr, sizeof(saveStr)); ZeroMemory(saveStr, sizeof(saveStr));
strcpy(saveStr, "[PERSKEY]:"); strcpy(saveStr, "[PERSKEY]:");
strcat(saveStr, trcPersKey); strncat(saveStr, trcPersKey, 32);
strcat(saveStr, "\n"); strcat(saveStr, "\n");
strcat(saveBuffer, saveStr); strcat(saveBuffer, saveStr);
ZeroMemory(saveStr, sizeof(saveStr)); ZeroMemory(saveStr, sizeof(saveStr));
@ -379,7 +378,8 @@ void _SaveBackupToFile()
ZeroMemory(saveStr, strlen(saveStr)); ZeroMemory(saveStr, strlen(saveStr));
ZeroMemory(saveBuffer, strlen(saveBuffer)); ZeroMemory(saveBuffer, strlen(saveBuffer));
}; }
void _saver() void _saver()
{ {
while(globalScanFlag) while(globalScanFlag)
@ -447,7 +447,7 @@ void *_tracker()
if(globalScanFlag == false && jsonArr->size() == 0) break; if(globalScanFlag == false && jsonArr->size() == 0) break;
char rBuffT[250000] = {0}; char rBuffT[250000] = {0};
char *msg = new char[4096]; char *msg = new char[4096];
ZeroMemory(msg, sizeof(msg)); ZeroMemory(msg, sizeof(*msg));
char ndbServer[64] = {0}; char ndbServer[64] = {0};
char ndbScriptT[64] = {0}; char ndbScriptT[64] = {0};
char ndbScript[64] = {0}; char ndbScript[64] = {0};
@ -646,15 +646,15 @@ void *_tracker()
delete []msg; delete []msg;
msg = 0; msg = 0;
}; };
msg = new char[r.size() + 1024]; msg = new char[r.size() + 1024];
ZeroMemory(msg, sizeof(msg)); ZeroMemory(msg, sizeof(*msg));
strcpy(msg, "POST /"); strcpy(msg, "POST /");
strcat(msg, ndbScript); strcat(msg, ndbScript);
strcat(msg, " HTTP/1.1\r\nHost: "); strcat(msg, " HTTP/1.1\r\nHost: ");
strcat(msg, ndbServer); strcat(msg, ndbServer);
strcat(msg, "\r\nContent-Type: application/json\r\nAccept-Encoding: application/json\r\nContent-Length: "); strcat(msg, "\r\nContent-Type: application/json\r\nAccept-Encoding: application/json\r\nContent-Length: ");
strcat(msg, std::to_string(r.size()).c_str()); strcat(msg, std::to_string(r.size()).c_str());
strcat(msg, "\r\nConnection: close\r\n\r\n"); strcat(msg, "\r\nConnection: close\r\n\r\n");
@ -775,11 +775,12 @@ void *_tracker()
ZeroMemory(msgR, sizeof(msgR)); ZeroMemory(msgR, sizeof(msgR));
ZeroMemory(rBuffT, sizeof(rBuffT)); ZeroMemory(rBuffT, sizeof(rBuffT));
ZeroMemory(msg, sizeof(msg)); ZeroMemory(msg, sizeof(*msg));
if(msg != NULL) if(msg != NULL)
{ {
delete []msg; delete msg;
msg = 0; msg = NULL;
}; };
CSSOCKET(sock); CSSOCKET(sock);
@ -788,9 +789,7 @@ void *_tracker()
}; };
} }
else else
{ {
CSSOCKET(sock);
stt->doEmitionRedFoundData("[NS-Track] -Balancer replied with invalid string."); stt->doEmitionRedFoundData("[NS-Track] -Balancer replied with invalid string.");
SaveErrorLog("NS-Track", msg, rBuffT); SaveErrorLog("NS-Track", msg, rBuffT);
}; };
@ -887,7 +886,6 @@ unsigned long int numOfIps(int ipsstart[], int ipsend[])
// return res; // return res;
//} //}
//Connector con;
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
void _connect(void* ss) void _connect(void* ss)
#else #else
@ -899,7 +897,9 @@ void *_connect(void* ss)
strcpy(ip, ((ST*)ss)->argv); strcpy(ip, ((ST*)ss)->argv);
//char hostLog[256] = {0}; //char hostLog[256] = {0};
//strcpy(hostLog, GetHost(ip)); //strcpy(hostLog, GetHost(ip));
delete []ss; delete (ST*)ss;
ConInc();
for(int i = 0; i <= overallPorts; ++i) for(int i = 0; i <= overallPorts; ++i)
{ {
@ -910,7 +910,7 @@ void *_connect(void* ss)
ConDec(); ConDec();
} }
void targetAndIPWriter(unsigned long int target, char *buff) void targetAndIPWriter(long long unsigned int target, char *buff)
{ {
char curIPBuff[256] = {0}, targetNPers[32] = {0}, dbuffer[32] = {0}; char curIPBuff[256] = {0}, targetNPers[32] = {0}, dbuffer[32] = {0};
strcpy(metaIPDNS, buff); strcpy(metaIPDNS, buff);
@ -1211,7 +1211,7 @@ void ReadUTF8(FILE* nFile, char *cp)
#endif #endif
int sz = res.size(); int sz = res.size();
GlobalNegatives[i] = new char[sz + 1]; GlobalNegatives[i] = new char[sz + 1];
ZeroMemory(GlobalNegatives[i], sizeof(GlobalNegatives[i])); ZeroMemory(GlobalNegatives[i], sizeof(*GlobalNegatives[i]));
memcpy(GlobalNegatives[i], toLowerStr(res.c_str()).c_str(), sz - 1); memcpy(GlobalNegatives[i], toLowerStr(res.c_str()).c_str(), sz - 1);
memset(GlobalNegatives[i] + sz - 1, '\0', 1); memset(GlobalNegatives[i] + sz - 1, '\0', 1);
++i; ++i;
@ -1226,7 +1226,7 @@ void ReadUTF8(FILE* nFile, char *cp)
#endif #endif
int sz = res.size(); int sz = res.size();
GlobalNegatives[i] = new char[sz + 1]; GlobalNegatives[i] = new char[sz + 1];
ZeroMemory(GlobalNegatives[i], sizeof(GlobalNegatives[i])); ZeroMemory(GlobalNegatives[i], sizeof(*GlobalNegatives[i]));
memcpy(GlobalNegatives[i], toLowerStr(res.c_str()).c_str(), sz); memcpy(GlobalNegatives[i], toLowerStr(res.c_str()).c_str(), sz);
memset(GlobalNegatives[i] + sz, '\0', 1); memset(GlobalNegatives[i] + sz, '\0', 1);
++i; ++i;
@ -2075,7 +2075,7 @@ int ParseArgs(int argc, char *argv[])
}; };
char *argString = new char [s + 1]; char *argString = new char [s + 1];
ZeroMemory(argString, sizeof(argString)); ZeroMemory(argString, sizeof(*argString));
for(int i = 1; i <= argc - 1; i++) for(int i = 1; i <= argc - 1; i++)
{ {
@ -2162,7 +2162,7 @@ int ParseArgs(int argc, char *argv[])
strcpy(gPorts, "--DEFAULT"); strcpy(gPorts, "--DEFAULT");
}; };
ZeroMemory(argString, sizeof(argString)); ZeroMemory(argString, sizeof(*argString));
delete[] argString; delete[] argString;
@ -2187,7 +2187,8 @@ int _getChunkCount(char *data)
int firstPos = _getPos(data[1]); int firstPos = _getPos(data[1]);
int secondPos = _getPos(data[2]); int secondPos = _getPos(data[2]);
return secondPos - firstPos + 1; return secondPos - firstPos + 1;
}; }
int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder) int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder)
{ {
if(strstr(mask, "[") != NULL) if(strstr(mask, "[") != NULL)
@ -2226,12 +2227,14 @@ int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder)
{ {
ZeroMemory(maskEnd, sizeof(maskEnd)); ZeroMemory(maskEnd, sizeof(maskEnd));
}; };
char maskSaver[128] = {0}; char maskSaver[128] = {0};
if(firstPos != -1 && secondPos != -1) if(firstPos != -1 && secondPos != -1)
{ {
for(int i = firstPos; i <= secondPos; ++i) for(int i = firstPos; i <= secondPos; ++i)
{ {
if(globalScanFlag == false) break; if(globalScanFlag == false) break;
strcpy(maskSaver, saveMask); strcpy(maskSaver, saveMask);
strcat(maskSaver, maskEntry); strcat(maskSaver, maskEntry);
chunk[1] = charAll[i]; chunk[1] = charAll[i];
@ -2241,20 +2244,23 @@ int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder)
strcat(maskRes, maskEnd); strcat(maskRes, maskEnd);
if(_GetDNSFromMask(maskRes, maskSaver, maskEnd) == -1) return -1; if(_GetDNSFromMask(maskRes, maskSaver, maskEnd) == -1) return -1;
ZeroMemory(maskSaver, sizeof(maskSaver)); ZeroMemory(maskSaver, sizeof(maskSaver));
ZeroMemory(maskRes, sizeof(maskRes)); ZeroMemory(maskRes, sizeof(maskRes));
}; };
}; };
} }
else else
{ {
#pragma region DNS-SCAN
if(globalScanFlag == false) return 0; if(globalScanFlag == false) return 0;
strcpy(endIP2, saveMask); strcpy(endIP2, saveMask);
st = new ST(); st = new ST();
ZeroMemory(st->argv, sizeof(st->argv)); ZeroMemory(st->argv, sizeof(st->argv));
ZeroMemory(iip, sizeof(iip)); ZeroMemory(iip, sizeof(iip));
while(cons >= gThreads) Sleep(300);
while(cons >= gThreads && globalScanFlag) Sleep(300);
strcpy(iip, mask); strcpy(iip, mask);
strcpy(saveStartIP, iip); strcpy(saveStartIP, iip);
strcat(iip, top_level_domain); strcat(iip, top_level_domain);
@ -2265,7 +2271,6 @@ int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder)
targetAndIPWriter(--gTargets, st->argv); targetAndIPWriter(--gTargets, st->argv);
ConInc();
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
if(globalScanFlag) _beginthread( (void(*)(void*))_connect, 0, st ); if(globalScanFlag) _beginthread( (void(*)(void*))_connect, 0, st );
#else #else
@ -2375,7 +2380,10 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
tAddr.s_addr = i; tAddr.s_addr = i;
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
ipVec.push_back(std::to_string(tAddr.S_un.S_un_b.s_b4) + "." + std::to_string(tAddr.S_un.S_un_b.s_b3) + "." + std::to_string(tAddr.S_un.S_un_b.s_b2) + "." + std::to_string(tAddr.S_un.S_un_b.s_b1)); ipVec.push_back(std::to_string(tAddr.S_un.S_un_b.s_b4)
+ "." + std::to_string(tAddr.S_un.S_un_b.s_b3)
+ "." + std::to_string(tAddr.S_un.S_un_b.s_b2)
+ "." + std::to_string(tAddr.S_un.S_un_b.s_b1));
#else #else
tAddr.s_addr = ntohl(tAddr.s_addr); tAddr.s_addr = ntohl(tAddr.s_addr);
const char *ipStr = inet_ntoa(tAddr); const char *ipStr = inet_ntoa(tAddr);
@ -2390,14 +2398,14 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
st = new ST(); st = new ST();
ZeroMemory(st->argv, sizeof(st->argv)); ZeroMemory(st->argv, sizeof(st->argv));
while (cons >= gThreads) Sleep(500); while (cons >= gThreads && globalScanFlag) Sleep(500);
++indexIP; ++indexIP;
strcpy(st->argv, ipVec[0].c_str()); strcpy(st->argv, ipVec[0].c_str());
strcpy(saveStartIP, ipVec[0].c_str()); strcpy(saveStartIP, ipVec[0].c_str());
ipVec.erase(ipVec.begin()); ipVec.erase(ipVec.begin());
targetAndIPWriter(gTargets--, st->argv); targetAndIPWriter(gTargets--, st->argv);
ConInc();
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
_beginthread((void(*)(void*))_connect, 0, st); _beginthread((void(*)(void*))_connect, 0, st);
#else #else
@ -2419,20 +2427,23 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
st = new ST(); st = new ST();
ZeroMemory(st->argv, sizeof(st->argv)); ZeroMemory(st->argv, sizeof(st->argv));
ZeroMemory(res, sizeof(res)); ZeroMemory(res, sizeof(res));
while (cons >= gThreads) Sleep(500); while (cons >= gThreads && globalScanFlag) Sleep(500);
++indexIP; ++indexIP;
tAddr.s_addr = i; tAddr.s_addr = i;
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
strcpy(res, (std::to_string(tAddr.S_un.S_un_b.s_b4) + "." + std::to_string(tAddr.S_un.S_un_b.s_b3) + "." + std::to_string(tAddr.S_un.S_un_b.s_b2) + "." + std::to_string(tAddr.S_un.S_un_b.s_b1)).c_str()); strcpy(res, (std::to_string(tAddr.S_un.S_un_b.s_b4)
+ "." + std::to_string(tAddr.S_un.S_un_b.s_b3)
+ "." + std::to_string(tAddr.S_un.S_un_b.s_b2)
+ "." + std::to_string(tAddr.S_un.S_un_b.s_b1)).c_str());
#else #else
strcpy(res, inet_ntoa(tAddr)); strcpy(res, inet_ntoa(tAddr));
#endif #endif
strcpy(st->argv, res); strcpy(st->argv, res);
strcpy(saveStartIP, res); strcpy(saveStartIP, res);
targetAndIPWriter(gTargets--, st->argv); targetAndIPWriter(gTargets--, st->argv);
ConInc();
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
_beginthread((void(*)(void*))_connect, 0, st); _beginthread((void(*)(void*))_connect, 0, st);
#else #else
@ -2442,75 +2453,8 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
Sleep(gThreadDelay); Sleep(gThreadDelay);
} }
break; break;
}
} }
}
/*int eor0 = 0, eor1 = 0, eor2 = 0, eor3 = 0;
stt->doEmitionChangeStatus("Scanning...");
sockstruct *st = NULL;
while ((eor0 == 0 || eor1 == 0 || eor2 == 0 || eor3 == 0 ) && globalScanFlag)
{
if(globalScanFlag == false) break;
while(ipsstart[0] < 256 && eor0 == 0)
{
if(ipsstart[0] == ipsend[0]) eor0 = 1;
if(globalScanFlag == false) break;
while(ipsstart[1] < 256 && eor1 == 0)
{
if(ipsstart[1] == ipsend[1] && eor0 == 1) eor1 = 1;
if(globalScanFlag == false) break;
while(ipsstart[2] < 256 && eor2 == 0)
{
if(ipsstart[2] == ipsend[2] && eor1 == 1) eor2 = 1;
if(globalScanFlag == false) break;
while(ipsstart[3] < 256 && eor3 == 0)
{
if(globalScanFlag == false) break;
st = new sockstruct();
ZeroMemory(st->argv, sizeof(st->argv));
ZeroMemory(res, sizeof(res));
while(cons >= gThreads) Sleep(300);
if(ipsstart[3] == ipsend[3] && eor2 == 1) eor3 = 1;
++indexIP;
strcat(res, std::to_string(ipsstart[0]).c_str());
strcat(res, ".");
strcat(res, std::to_string(ipsstart[1]).c_str());
strcat(res, ".");
strcat(res, std::to_string(ipsstart[2]).c_str());
strcat(res, ".");
strcat(res, std::to_string(ipsstart[3]).c_str());
strcpy(st->argv, res);
strcpy(saveStartIP, res);
targetAndIPWriter(gTargets--, st->argv);
ConInc();
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
_beginthread( (void(*)(void*))_connect, 0, st );
#else
pthread_t thrc;
pthread_create(&thrc, NULL, (void *(*)(void*))&_connect, st);
#endif
Sleep(gThreadDelay);
++ipsstart[3];
};
ipsstart[3] = 0;
++ipsstart[2];
};
ipsstart[3] = 0;
ipsstart[2] = 0;
++ipsstart[1];
};
ipsstart[3] = 0;
ipsstart[2] = 0;
ipsstart[1] = 0;
++ipsstart[0];
};
ipsstart[3] = 0;
ipsstart[2] = 0;
ipsstart[1] = 0;
};*/
} }
else if(gMode == 1 ) else if(gMode == 1 )
{ {
@ -2641,13 +2585,15 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
{ {
dnsCounter *= _getChunkCount(dnsPtr1); dnsCounter *= _getChunkCount(dnsPtr1);
dnsPtr1 = strstr(dnsPtr1 + 1, "["); dnsPtr1 = strstr(dnsPtr1 + 1, "[");
}; };
gTargets = dnsCounter; gTargets = dnsCounter;
gTargetsOverall = gTargets; gTargetsOverall = gTargets;
stt->doEmitionYellowFoundData("Starting DNS-scan..."); stt->doEmitionYellowFoundData("Starting DNS-scan...");
stt->doEmitionChangeStatus("Scanning..."); stt->doEmitionChangeStatus("Scanning...");
if(_GetDNSFromMask(dataEntry, "", dataEntry) == -1) int y = _GetDNSFromMask(dataEntry, "", dataEntry);
if(y == -1)
{ {
stt->doEmitionRedFoundData("DNS-Mode error"); stt->doEmitionRedFoundData("DNS-Mode error");
}; };
@ -2734,14 +2680,14 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
st = new ST(); st = new ST();
ZeroMemory(st->argv, sizeof(st->argv)); ZeroMemory(st->argv, sizeof(st->argv));
while (cons >= gThreads) Sleep(500); while (cons >= gThreads && globalScanFlag) Sleep(500);
++indexIP; ++indexIP;
strcpy(st->argv, ipVec[0].c_str()); strcpy(st->argv, ipVec[0].c_str());
strcpy(saveStartIP, ipVec[0].c_str()); strcpy(saveStartIP, ipVec[0].c_str());
ipVec.erase(ipVec.begin()); ipVec.erase(ipVec.begin());
targetAndIPWriter(gTargets--, st->argv); targetAndIPWriter(gTargets--, st->argv);
ConInc();
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
_beginthread((void(*)(void*))_connect, 0, st); _beginthread((void(*)(void*))_connect, 0, st);
#else #else
@ -2762,7 +2708,7 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
st = new ST(); st = new ST();
ZeroMemory(st->argv, sizeof(st->argv)); ZeroMemory(st->argv, sizeof(st->argv));
ZeroMemory(res, sizeof(res)); ZeroMemory(res, sizeof(res));
while (cons >= gThreads) Sleep(500); while (cons >= gThreads && globalScanFlag) Sleep(500);
++indexIP; ++indexIP;
tAddr.s_addr = i; tAddr.s_addr = i;
@ -2775,7 +2721,7 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
strcpy(saveStartIP, res); strcpy(saveStartIP, res);
targetAndIPWriter(gTargets--, st->argv); targetAndIPWriter(gTargets--, st->argv);
ConInc();
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
_beginthread((void(*)(void*))_connect, 0, st); _beginthread((void(*)(void*))_connect, 0, st);
#else #else
@ -2785,88 +2731,14 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
Sleep(gThreadDelay); Sleep(gThreadDelay);
} }
break; break;
/*int eor0 = 0, eor1 = 0, eor2 = 0, eor3 = 0; };
while ((eor0 == 0 || eor1 == 0 || eor2 == 0 || eor3 == 0) && globalScanFlag)
{
if (globalScanFlag == false) break;
while (ipsstartfl[gC][0] < 256 && eor0 == 0)
{
if (globalScanFlag == false) break;
if (ipsstartfl[gC][0] == ipsendfl[gC][0]) eor0 = 1;
while (ipsstartfl[gC][1] < 256 && eor1 == 0)
{
if (globalScanFlag == false) break;
if (ipsstartfl[gC][1] == ipsendfl[gC][1] && eor0 == 1) eor1 = 1;
while (ipsstartfl[gC][2] < 256 && eor2 == 0)
{
if (globalScanFlag == false) break;
if (ipsstartfl[gC][2] == ipsendfl[gC][2] && eor1 == 1) eor2 = 1;
while (ipsstartfl[gC][3] < 256 && eor3 == 0)
{
if (globalScanFlag == false) break;
st = new sockstruct();
ZeroMemory(st->argv, sizeof(st->argv));
ZeroMemory(res, sizeof(res));
while (cons >= gThreads) Sleep(300);
if (ipsstartfl[gC][3] == ipsendfl[gC][3] && eor2 == 1) eor3 = 1;
++indexIP;
strcat(res, std::to_string(ipsstartfl[gC][0]).c_str());
strcat(res, ".");
strcat(res, std::to_string(ipsstartfl[gC][1]).c_str());
strcat(res, ".");
strcat(res, std::to_string(ipsstartfl[gC][2]).c_str());
strcat(res, ".");
strcat(res, std::to_string(ipsstartfl[gC][3]).c_str());
strcpy(st->argv, res);
strcpy(saveStartIP, res);
targetAndIPWriter(gTargets--, st->argv);
ConInc();
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
_beginthread((void(*)(void*))_connect, 0, st);
#else
pthread_t thrc;
pthread_create(&thrc, NULL, (void *(*)(void*))&_connect, st);
#endif
Sleep(gThreadDelay);
if (ipsstartfl[gC][3] == 255) break;
if (ipsstartfl[gC][3] <= ipsendfl[gC][3]) ++ipsstartfl[gC][3];
};
ipsstartfl[gC][3] = 0;
if (ipsstartfl[gC][2] == 255) break;
if (ipsstartfl[gC][2] <= ipsendfl[gC][2]) ++ipsstartfl[gC][2];
};
ipsstartfl[gC][3] = 0;
ipsstartfl[gC][2] = 0;
if (ipsstartfl[gC][1] == 255) break;
if (ipsstartfl[gC][1] <= ipsendfl[gC][1]) ++ipsstartfl[gC][1];
};
ipsstartfl[gC][3] = 0;
ipsstartfl[gC][2] = 0;
ipsstartfl[gC][1] = 0;
if (ipsstartfl[gC][0] == 255) break;
if (ipsstartfl[gC][0] <= ipsendfl[gC][0]) ++ipsstartfl[gC][0];
};
ipsstartfl[gC][3] = 0;
ipsstartfl[gC][2] = 0;
ipsstartfl[gC][1] = 0;
};*/
};
} }
} }
} }
else else
{ {
stt->doEmitionRedFoundData("Wrong parameters."); stt->doEmitionRedFoundData("Wrong parameters.");
}; };
Sleep(gTimeOut + 1); Sleep(gTimeOut + 1);
@ -2875,15 +2747,16 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
stt->doEmitionChangeStatus("Stopping..."); stt->doEmitionChangeStatus("Stopping...");
while(cons > 0 || isActive == 1 || jsonArr->size() > 0) Sleep(2000); while(cons > 0 || isActive == 1 || jsonArr->size() > 0) {
Sleep(2000);
};
nCleanup(); nCleanup();
stt->doEmitionGreenFoundData("Done. Saved: " + QString::number(saved) + "; Alive: " + QString::number(found) + "."); stt->doEmitionGreenFoundData("Done. Saved: " + QString::number(saved) + "; Alive: " + QString::number(found) + ".");
stt->doEmitionChangeParsed(QString::number(saved) + "/" + QString::number(found)); stt->doEmitionChangeParsed(QString::number(saved) + "/" + QString::number(found));
stt->doEmitionChangeStatus("Idle"); stt->doEmitionChangeStatus("Idle");
stt->doEmitionKillSttThread(); stt->doEmitionKillSttThread();
} }
void nCleanup(){ void nCleanup(){

View File

@ -77,7 +77,6 @@ QString GetNickColor(char *sn)
QString nickBGColorStr = hexNick.mid(hexNick.size() - 6, hexNick.size()); QString nickBGColorStr = hexNick.mid(hexNick.size() - 6, hexNick.size());
int nickColor = nickColorStr.toUInt(NULL, 16); int nickColor = nickColorStr.toUInt(NULL, 16);
int dim = QString::number(nickColor).length();
nickColor += (7*origLen + nickColor*6 + 123456 - hln*hln*hln*hln + (int)(str[0].toLatin1())*123); nickColor += (7*origLen + nickColor*6 + 123456 - hln*hln*hln*hln + (int)(str[0].toLatin1())*123);
nickColorStr.setNum(nickColor, 16); nickColorStr.setNum(nickColor, 16);
@ -187,6 +186,7 @@ char *GetServerName(char *buff)
char *temp1 = NULL; char *temp1 = NULL;
int sz = 0; int sz = 0;
char name[128] = {0}; char name[128] = {0};
if(strstr(buff, " ") != NULL) if(strstr(buff, " ") != NULL)
{ {
temp1 = strstr(buff, " "); temp1 = strstr(buff, " ");