From 17f3ae55fad5ebf94ab6d03194cfc6fbe111db3a Mon Sep 17 00:00:00 2001 From: cora48 Date: Fri, 3 Apr 2015 17:36:22 +0300 Subject: [PATCH] Updated UI --- BasicAuth.cpp | 6 +- BruteUtils.cpp | 6 +- Connector.cpp | 2 - FTPAuth.cpp | 4 +- IPCAuth.cpp | 5 +- STh.cpp | 53 ++--- STh.h | 22 +-- WebformWorker.cpp | 8 +- externData.h | 1 + finder.cpp | 8 +- nesca.pro | 1 - nesca.pro.user | 2 +- nesca_3.cpp | 203 +++++++++++++------ nesca_3.h | 1 + nesca_3.ui | 451 +++++++++++++----------------------------- nesca_startModule.cpp | 60 +++--- 16 files changed, 338 insertions(+), 495 deletions(-) diff --git a/BasicAuth.cpp b/BasicAuth.cpp index ff5ae80..73859b5 100644 --- a/BasicAuth.cpp +++ b/BasicAuth.cpp @@ -33,14 +33,12 @@ bool BA::checkOutput(const string *buffer, const char *ip, const int port) { lopaStr BA::BABrute(const char *ip, const int port) { string buffer; string lpString; - lopaStr lps; + lopaStr lps{"UNKNOWN", "", ""}; ZeroMemory(lps.login, sizeof(lps.login)); ZeroMemory(lps.pass, sizeof(lps.pass)); ZeroMemory(lps.other, sizeof(lps.other)); int passCounter = 0; - strcpy(lps.login, "UNKNOWN"); - for(int i = 0; i < MaxLogin; ++i) { for (int j = 0; j < MaxPass; ++j) { FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready;}); @@ -78,7 +76,7 @@ lopaStr BA::BALobby(const char *ip, const int port) { return lps; } else { - lopaStr lps; + lopaStr lps{"UNKNOWN", "", ""}; return lps; } } diff --git a/BruteUtils.cpp b/BruteUtils.cpp index 8ad5d20..f6cf5c9 100644 --- a/BruteUtils.cpp +++ b/BruteUtils.cpp @@ -13,8 +13,7 @@ __asm #else asm("lock incl BrutingThrds"); #endif - - stt->doEmitionChangeBA(QString::number(BrutingThrds)); + stt->doEmitionUpdateArc(gTargets); } void BruteUtils::BConDec() @@ -30,6 +29,5 @@ void BruteUtils::BConDec() asm("lock decl BrutingThrds"); #endif } - - stt->doEmitionChangeBA(QString::number(BrutingThrds)); + stt->doEmitionUpdateArc(gTargets); } diff --git a/Connector.cpp b/Connector.cpp index 9046b79..e4d00d0 100644 --- a/Connector.cpp +++ b/Connector.cpp @@ -223,7 +223,6 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer, if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString("[OVERFLOW]")); return buffer->size(); } else { - stt->doEmitionOffline(QString::number(++offlines)); return -1; } } @@ -255,7 +254,6 @@ int Connector::_ConnectToPort(char* ip, int port) if(size > 0) { ++Alive; - stt->doEmitionChangeParsed(QString::number(saved) + "/" + QString::number(++found)); Lexems lx; lx._filler(port, buffer.c_str(), ip, size, &lx); }; diff --git a/FTPAuth.cpp b/FTPAuth.cpp index 745db33..65f8aca 100644 --- a/FTPAuth.cpp +++ b/FTPAuth.cpp @@ -13,7 +13,7 @@ bool FTPA::checkOutput(const string *buffer) { lopaStr FTPA::FTPBrute(const char *ip, const int port, PathStr *ps) { string buffer; string lpString; - lopaStr lps; + lopaStr lps{"UNKNOWN", "", ""};; ZeroMemory(lps.login, sizeof(lps.login)); ZeroMemory(lps.pass, sizeof(lps.pass)); ZeroMemory(lps.other, sizeof(lps.other)); @@ -74,7 +74,7 @@ lopaStr FTPA::FTPLobby(const char *ip, const int port, PathStr *ps) { return lps; } else { - lopaStr lps; + lopaStr lps{"UNKNOWN", "", ""};; return lps; } } diff --git a/IPCAuth.cpp b/IPCAuth.cpp index 29c88c9..e381807 100644 --- a/IPCAuth.cpp +++ b/IPCAuth.cpp @@ -5,7 +5,7 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC) { - lopaStr lps; + lopaStr lps{"UNKNOWN", "", ""}; bool result = true; ZeroMemory(lps.login, sizeof(lps.login)); ZeroMemory(lps.pass, sizeof(lps.pass)); @@ -172,7 +172,6 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC) }; }; - strcpy(lps.login, "UNKNOWN"); return lps; } @@ -186,7 +185,7 @@ lopaStr IPC::IPCLobby(const char *ip, int port, char *SPEC) { return lps; } else { - lopaStr lps; + lopaStr lps{"UNKNOWN", "", ""}; return lps; } } diff --git a/STh.cpp b/STh.cpp index 076de45..e664604 100644 --- a/STh.cpp +++ b/STh.cpp @@ -3,38 +3,26 @@ void STh::doEmitionShowRedVersion() { emit stt->showRedVersion(); -}; +} void STh::doEmitionStartScanIP() { emit stt->startScanIP(); -}; +} void STh::doEmitionStartScanDNS() { emit stt->startScanDNS(); -}; +} void STh::doEmitionStartScanImport() { emit stt->startScanImport(); -}; +} void STh::doEmitionAddIncData(QString(ip), QString str) { emit stt->sIncData(ip, str); -}; +} void STh::doEmitionAddOutData( QString str) { emit stt->sOutData(str); -}; -void STh::doEmitionIPRANGE(QString str) -{ - emit stt->changeIpRange(str); -} -void STh::doEmitionThreads(QString str) -{ - emit stt->changeThreads(str); -} -void STh::doEmitionIPS(QString str) -{ - emit stt->changeIPS(str); } void STh::doEmitionFoundData(QString str) { @@ -47,7 +35,7 @@ void STh::doEmitionBAData(QString str) void STh::doEmition_BARedData(QString str) { emit stt->changeRedBAData(str); -}; +} void STh::doEmition_BAGreenData(QString str) { emit stt->changeGreenBAData(str); @@ -72,31 +60,20 @@ void STh::doEmitionChangeStatus(QString str) { emit stt->changeStatus(str); } -void STh::doEmitionTargetsLeft(QString str) -{ - emit stt->changeTargetsLeft(str); -} void STh::doEmitionKillSttThread() { emit stt->killSttThread(); -}; -void STh::doEmitionChangeParsed(QString str) -{ - emit stt->changeParsedValue(str); -}; -void STh::doEmitionChangeBA(QString str) -{ - emit stt->changeBAValue(str); -}; -void STh::doEmitionOffline(QString str) -{ - emit stt->changeOffline(str); -}; +} void STh::doEmitionDataSaved(bool status) { - emit stt->signalDataSaved(status); -}; + emit stt->signalDataSaved(status); +} +void STh::doEmitionUpdateArc(unsigned long gTargets) +{ + emit stt->signalUpdateArc(gTargets); +} + void STh::run() { startScan(inputStr); -} \ No newline at end of file +} diff --git a/STh.h b/STh.h index fd6ed2c..61a8499 100644 --- a/STh.h +++ b/STh.h @@ -20,23 +20,17 @@ public: static void doEmitionAddIncData(QString ip, QString str); static void doEmitionAddOutData(QString str); static void doEmition_BAGreenData(QString str); - static void doEmition_BARedData(QString str); - static void doEmitionIPRANGE(QString str); - static void doEmitionThreads(QString str); - static void doEmitionIPS(QString str); + static void doEmition_BARedData(QString str); static void doEmitionFoundData(QString str); static void doEmitionRedFoundData(QString str); static void doEmitionGreenFoundData(QString); static void doEmitionYellowFoundData(QString); - static void doEmitionChangeStatus(QString); - static void doEmitionTargetsLeft(QString); - static void doEmitionKillSttThread(); - static void doEmitionChangeParsed(QString); - static void doEmitionChangeBA(QString); - static void doEmitionOffline(QString); + static void doEmitionChangeStatus(QString); + static void doEmitionKillSttThread(); static void doEmitionBAData(QString str); static void doEmitionDebugFoundData(QString); static void doEmitionShowRedVersion(); + static void doEmitionUpdateArc(unsigned long gTargets); signals: public: signals: void showRedVersion(); @@ -47,22 +41,16 @@ public: signals: void signalDataSaved(bool); public: signals: void changeGreenBAData(QString); public: signals: void changeRedBAData(QString); public: signals: void changeBAData(QString); -public: signals: void changeOffline(QString); -public: signals: void changeBAValue(QString); -public: signals: void changeParsedValue(QString); -public: signals: void changeIpRange(QString); -public: signals: void changeThreads(QString); -public: signals: void changeIPS(QString); public: signals: void changeFoundData(QString); public: signals: void changeRedFoundData(QString); public: signals: void changeGreenFoundData(QString); public: signals: void changeYellowFoundData(QString); public: signals: void changeDebugFoundData(QString); public: signals: void changeStatus(QString); -public: signals: void changeTargetsLeft(QString); public: signals: void killSttThread(); public: signals: void sIncData(QString, QString); public: signals: void sOutData(QString); +public: signals: void signalUpdateArc(unsigned long); protected: void run(); diff --git a/WebformWorker.cpp b/WebformWorker.cpp index d556521..81f4eec 100644 --- a/WebformWorker.cpp +++ b/WebformWorker.cpp @@ -158,12 +158,12 @@ lopaStr WFClass::_WFBrute( const char *ip, char *passVal, char *formVal) { - lopaStr result = {"UNKNOWN", "UNKNOWN", "UNKNOWN"}; + lopaStr lps{"UNKNOWN", "", ""}; if(strstri(methodVal, "get") != NULL) { - result = doGetCheck(ip, port, actionVal, userVal, passVal, formVal); + lps = doGetCheck(ip, port, actionVal, userVal, passVal, formVal); } else if(strstri(methodVal, "post") != NULL) { - result = doPostCheck(ip, port, actionVal, userVal, passVal, formVal); + lps = doPostCheck(ip, port, actionVal, userVal, passVal, formVal); } else { stt->doEmitionFoundData(" - [WF]: Unknown method."); }; - return result; + return lps; } diff --git a/externData.h b/externData.h index 5fe6ff3..0f371e5 100644 --- a/externData.h +++ b/externData.h @@ -21,6 +21,7 @@ extern QJsonArray *jsonArr; extern unsigned long long gTargetsOverall; +extern long long unsigned int gTargets; extern volatile int cons, BrutingThrds, gThreads; extern char **loginLst, **passLst, **wfLoginLst, **wfPassLst, **sshlpLst, **GlobalNegatives; extern bool trackerOK, __savingBackUpFile, globalScanFlag, MapWidgetOpened, diff --git a/finder.cpp b/finder.cpp index 61e6823..e643e19 100644 --- a/finder.cpp +++ b/finder.cpp @@ -1134,16 +1134,16 @@ void _specWFBrute(const char *ip, int port, const char *buff, int flag, char *pa } else { - if(gNegDebugMode) stt->doEmitionFoundData("" + QString(ip) + ":" + QString::number(port) + " - [WF]: Cannot find user/pass field."); - ///fillGlobalLogData(ip, tport, std::to_string(size).c_str(), title, "", "", "UnknownWebform", cp, tclass); - ///putInFile(flag, ip, tport, size, title, cp); + if(gNegDebugMode) stt->doEmitionFoundData("" + QString(ip) + ":" + QString::number(port) + + " - [WF]: Cannot find user/pass field."); }; }; } void _specWEBIPCAMBrute(const char *ip, int port, char *finalstr, int flag, char *comment, char *cp, int size, char *SPEC) { - lopaStr lps; + lopaStr lps{"UNKNOWN", "", ""}; ZeroMemory(lps.login, sizeof(lps.login)); ZeroMemory(lps.pass, sizeof(lps.pass)); ZeroMemory(lps.other, sizeof(lps.other)); diff --git a/nesca.pro b/nesca.pro index 696b724..1e53f5c 100644 --- a/nesca.pro +++ b/nesca.pro @@ -35,7 +35,6 @@ SOURCES +=\ finder.cpp \ WebformWorker.cpp \ Connector.cpp \ - connector_old.cpp \ Utils.cpp \ BruteUtils.cpp \ BasicAuth.cpp \ diff --git a/nesca.pro.user b/nesca.pro.user index 8b7a334..97ae6e7 100644 --- a/nesca.pro.user +++ b/nesca.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/nesca_3.cpp b/nesca_3.cpp index 702c05f..7dac8b0 100644 --- a/nesca_3.cpp +++ b/nesca_3.cpp @@ -146,6 +146,10 @@ QList PhraseLog; bool ME2ScanFlag = true, QoSScanFlag = false, VoiceScanFlag = false, PieStatFlag = false; +QVector dots; +QVector dotsThreads; +QFont multiFontSmallFontPie; +QFont multiFontSmallFontArc; void _LoadPersInfoToLocalVars(int savedTabIndex) { ZeroMemory(currentIP, sizeof(currentIP)); @@ -209,6 +213,84 @@ void _LoadPersInfoToLocalVars(int savedTabIndex) { } Ui::nesca_3Class *ui = new Ui::nesca_3Class; +QGraphicsScene *testScene; + +qreal sharedY = 50; +qreal sharedheight = sharedY + 120; +QPen penAllThreads(QColor(255,255,255, 30), 10, Qt::CustomDashLine); +QPen penThreads(QColor(82,180,229), 10, Qt::SolidLine); +QPen penBAThreads(QColor(250,32,61), 5, Qt::CustomDashLine); +QPen penAllTargets(QColor(255,255,255, 30), 10, Qt::SolidLine); +QPen penTargets(QColor(250,94,32), 6, Qt::SolidLine); +QPen penSaved(QColor(72,255,0), 3, Qt::SolidLine); +void nesca_3::drawVerboseArcs(unsigned long gTargets) { + testScene->clear(); + qreal leftX = 185; + qreal rightX = -165; + int fSz = 10; + + QPainterPath pathAllThreads; + pathAllThreads.arcMoveTo(leftX, sharedY, rightX, sharedheight, 0); + pathAllThreads.arcTo(leftX, sharedY, rightX, sharedheight, 0, 180); + QGraphicsPathItem* itmAllThreads = new QGraphicsPathItem(pathAllThreads); + itmAllThreads->setPen(penAllThreads); + testScene->addItem(itmAllThreads); + + QPainterPath pathThreads; + pathThreads.arcMoveTo(leftX, sharedY, rightX, sharedheight, 0); + pathThreads.arcTo(leftX, sharedY, rightX, sharedheight, 0, cons*((float)(180/(float)gThreads))); + QGraphicsPathItem* itmThreads = new QGraphicsPathItem(pathThreads); + itmThreads->setPen(penThreads); + testScene->addItem(itmThreads); + + fSz = 5; + QPainterPath pathBAThreads; + pathBAThreads.arcMoveTo(leftX, sharedY, rightX, sharedheight, 0); + pathBAThreads.arcTo(leftX, sharedY, rightX, sharedheight, 0, BrutingThrds*((float)(180/(float)gThreads))); + QGraphicsPathItem* itmBAThreads = new QGraphicsPathItem(pathBAThreads); + itmBAThreads->setPen(penBAThreads); + testScene->addItem(itmBAThreads); + + fSz = 10; + int xOffsetl = fSz + 2; + int xOffsetr = xOffsetl * 2; + leftX += xOffsetl; + rightX -= xOffsetr; + qreal sharedheight1 = sharedheight - xOffsetl; + qreal sharedheight2 = sharedheight + xOffsetr; + qreal nSharedY = sharedY - xOffsetl; + + QPainterPath pathAllTargets; + pathAllTargets.arcMoveTo(leftX, sharedY, rightX, sharedheight1, 0); + pathAllTargets.arcTo(leftX, nSharedY, rightX, sharedheight2, 0, 180); + QGraphicsPathItem* itmAllTargets = new QGraphicsPathItem(pathAllTargets); + itmAllTargets->setPen(penAllTargets); + testScene->addItem(itmAllTargets); + + fSz = 6; + QPainterPath pathTargets; + pathTargets.arcMoveTo(leftX, sharedY, rightX, sharedheight1, 0); + pathTargets.arcTo(leftX, nSharedY, rightX, sharedheight2, 0, indexIP*((float)(180/(float)gTargetsOverall))); + QGraphicsPathItem* itmTargets = new QGraphicsPathItem(pathTargets); + itmTargets->setPen(penTargets); + testScene->addItem(itmTargets); + + fSz = 3; + QPainterPath pathSaved; + pathSaved.arcMoveTo(leftX, sharedY, rightX, sharedheight1, 0); + pathSaved.arcTo(leftX, nSharedY, rightX, sharedheight2, 0, saved*((float)(180/(float)gTargetsOverall))); + QGraphicsPathItem* itmSaved = new QGraphicsPathItem(pathSaved); + itmSaved->setPen(penSaved); + testScene->addItem(itmSaved); + + ui->ipLabel->setText(QString(currentIP)); + ui->labelSavedValue->setText(QString::number(saved)); + ui->labelPendingTargets->setText(QString::number(gTargets)); + ui->labelRunningThreads->setText(QString::number(cons) + "/" + + QString::number(BrutingThrds) + "/" + + QString::number(gThreads)); +} + void setSceneArea() { delete ui->graphicsVoice; @@ -256,16 +338,22 @@ void setSceneArea() ui->pbgv->setScene(pbScene); ui->jobRangeVisual->setScene(jobRangeVisualScene); - ui->graphicLog->setSceneRect(0, 0, ui->graphicLog->width(), ui->graphicLog->height()); - ui->graphicLog_2->setSceneRect(0, 0, ui->graphicLog_2->width(), ui->graphicLog_2->height()); - ui->graphicDelim->setSceneRect(0, 0, ui->graphicDelim->width(), ui->graphicDelim->height()); - ui->graphicLog_Upper->setSceneRect(0, 0, ui->graphicLog_Upper->width(), ui->graphicLog_Upper->height()); - ui->graphicActivity->setSceneRect(0, 0, ui->graphicActivity->width(), ui->graphicActivity->height()); - ui->graphicActivityGrid->setSceneRect(0, 0, ui->graphicActivityGrid->width(), ui->graphicActivityGrid->height()); - ui->graphicTextPlacer->setSceneRect(0, 0, ui->graphicTextPlacer->width(), ui->graphicTextPlacer->height()); - ui->graphicsVoice->setSceneRect(0, 0, ui->graphicsVoice->width(), ui->graphicsVoice->height()); - ui->pbgv->setSceneRect(0, 0, ui->pbgv->width(), ui->pbgv->height()); - ui->jobRangeVisual->setSceneRect(0, 0, ui->jobRangeVisual->width(), ui->jobRangeVisual->height()); + ui->graphicLog->setSceneRect(0, 0, ui->graphicLog->width(), ui->graphicLog->height()); + ui->graphicLog_2->setSceneRect(0, 0, ui->graphicLog_2->width(), ui->graphicLog_2->height()); + ui->graphicDelim->setSceneRect(0, 0, ui->graphicDelim->width(), ui->graphicDelim->height()); + ui->graphicLog_Upper->setSceneRect(0, 0, ui->graphicLog_Upper->width(), ui->graphicLog_Upper->height()); + ui->graphicActivity->setSceneRect(0, 0, ui->graphicActivity->width(), ui->graphicActivity->height()); + ui->graphicActivityGrid->setSceneRect(0, 0, ui->graphicActivityGrid->width(), ui->graphicActivityGrid->height()); + ui->graphicTextPlacer->setSceneRect(0, 0, ui->graphicTextPlacer->width(), ui->graphicTextPlacer->height()); + ui->graphicsVoice->setSceneRect(0, 0, ui->graphicsVoice->width(), ui->graphicsVoice->height()); + ui->pbgv->setSceneRect(0, 0, ui->pbgv->width(), ui->pbgv->height()); + ui->jobRangeVisual->setSceneRect(0, 0, ui->jobRangeVisual->width(), ui->jobRangeVisual->height()); + + + testScene = new QGraphicsScene(); + ui->graphicsTest->setScene(testScene); + ui->graphicsTest->setSceneRect(0, 0, ui->graphicsTest->width(), ui->graphicsTest->height()); + ui->graphicsTest->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::HighQualityAntialiasing); } void setButtonStyleArea() @@ -1020,64 +1108,60 @@ void nesca_3::slotUpdatePie() float perc5 = ((float)PieWF/(float)(found) * 100) * degree; float perc6 = ((float)PieSSH/(float)(found) * 100) * degree; - QFont fnt; - fnt.setFamily("Eurostile"); - fnt.setPixelSize(10); - QString dataSaved = "Saved: " + QString::number(goods/(float)(found > 0 ? found : 1) * 100) + "%(" + QString::number(goods) + ")"; QString dataParsed = "Filtered: " + QString::number((found - goods)/(float)(found > 0 ? found : 1) * 100) + "%(" + QString::number(found - goods) + ")"; QString dataOnline = "Online: " + QString::number(found); QString dataAnom = "Anomalies: " + QString::number(PieAnomC1/(float)(goods > 0 ? goods : 1) * 100) + "%"; QString dataBA = "Basic Auth: " + QString::number(PieBA/(float)(goods > 0 ? goods : 1) * 100) + "%"; QString dataSusp = "Suspicious: " + QString::number(PieSusp/(float)(goods > 0 ? goods : 1) * 100) + "%"; - QString dataLowl = "Lowload: " + QString::number(PieLowl/(float)(goods > 0 ? goods : 1) * 100) + "%"; - QString dataWF = "WebForms: " + QString::number(PieWF/(float)(goods > 0 ? goods : 1) * 100) + "%"; - QString dataSSH = "SSH: " + QString::number(PieSSH/(float)(goods > 0 ? goods : 1) * 100) + "%"; + QString dataLowl = "Lowload: " + QString::number(PieLowl/(float)(goods > 0 ? goods : 1) * 100) + "%"; + QString dataWF = "WebForms: " + QString::number(PieWF/(float)(goods > 0 ? goods : 1) * 100) + "%"; + QString dataSSH = "SSH: " + QString::number(PieSSH/(float)(goods > 0 ? goods : 1) * 100) + "%"; int dataX = 1; int dataY = 13; - QGraphicsTextItem *titem = sceneGraph->addText(dataOnline, fnt); + QGraphicsTextItem *titem = sceneGraph->addText(dataOnline, multiFontSmallFontPie); titem->setX(dataX); titem->setY(-5); titem->setDefaultTextColor(QColor(255, 255, 255, 130)); - titem = sceneGraph->addText(dataSaved, fnt); + titem = sceneGraph->addText(dataSaved, multiFontSmallFontPie); titem->setX(dataX); titem->setY(5); titem->setDefaultTextColor(QColor(255, 255, 255, 130)); - titem = sceneGraph->addText(dataParsed, fnt); + titem = sceneGraph->addText(dataParsed, multiFontSmallFontPie); titem->setX(dataX); titem->setY(15); titem->setDefaultTextColor(QColor(255, 255, 255, 255)); - titem = sceneGraph->addText(dataAnom, fnt); + titem = sceneGraph->addText(dataAnom, multiFontSmallFontPie); titem->setX(dataX); titem->setY(dataY + 17); titem->setDefaultTextColor(QColor("red")); - titem = sceneGraph->addText(dataBA, fnt); + titem = sceneGraph->addText(dataBA, multiFontSmallFontPie); titem->setX(dataX); titem->setY(dataY + 27); titem->setDefaultTextColor(Qt::darkCyan); - titem = sceneGraph->addText(dataSusp, fnt); + titem = sceneGraph->addText(dataSusp, multiFontSmallFontPie); titem->setX(dataX); titem->setY(dataY + 37); titem->setDefaultTextColor(Qt::darkRed); - titem = sceneGraph->addText(dataLowl, fnt); + titem = sceneGraph->addText(dataLowl, multiFontSmallFontPie); titem->setX(dataX); titem->setY(dataY + 47); titem->setDefaultTextColor(Qt::magenta); - titem = sceneGraph->addText(dataWF, fnt); + titem = sceneGraph->addText(dataWF, multiFontSmallFontPie); titem->setX(dataX); titem->setY(dataY + 56); titem->setDefaultTextColor(Qt::darkGray); - titem = sceneGraph->addText(dataSSH, fnt); + titem = sceneGraph->addText(dataSSH, multiFontSmallFontPie); titem->setX(dataX); titem->setY(dataY + 66); titem->setDefaultTextColor(Qt::darkRed); @@ -1419,7 +1503,6 @@ void nesca_3::slotClearLogs() int c = 1; - void nesca_3::slotSaveImage(QAction *qwe) { QObject *smB = this->sender(); @@ -1641,7 +1724,6 @@ QRegExp _rOutProt(" HTTP/1.\\d+"); QRegExp _rOutPath(" /(\\w|\\.|,|/|:|-|_|\\?|!|\\@|#|\\$|%|\\^|&|\\*|\\(|\\)|=|\\+|<|>|;|:|\"|'|~|\\[|\\])* "); QRegExp _rOutHost("Host: ((\\w|\\d|\\.|:|/)*)\\r\\n"); QRegExp qrp("\\n(.+):"); - void nesca_3::slotOutData(QString str) { if(SendData != NULL) @@ -1980,9 +2062,7 @@ void nesca_3::IPScanSeq() { if(ui->portLine->text() != "") { - _LoadPersInfoToLocalVars(savedTabIndex); - ui->labelParsed_Value->setText("0/0"); - ui->labelOffline_Value->setText("0"); + _LoadPersInfoToLocalVars(savedTabIndex); stopFirst = false; ui->tabMainWidget->setTabEnabled(1, false); ui->tabMainWidget->setTabEnabled(2, false); @@ -2064,10 +2144,7 @@ void nesca_3::DNSScanSeq() if(ui->lineEditStartIPDNS->text() != "") { if(ui->lineEditPort->text() != "") - { - _LoadPersInfoToLocalVars(savedTabIndex); - ui->labelParsed_Value->setText("0/0"); - ui->labelOffline_Value->setText("0"); + { if(ui->lineEditStartIPDNS->text().indexOf(".") > 0) { QStringList lst = ui->lineEditStartIPDNS->text().split("."); @@ -2078,9 +2155,10 @@ void nesca_3::DNSScanSeq() topLevelDomainStr += "."; topLevelDomainStr += lst[i]; }; - ui->lineILVL->setText(topLevelDomainStr); + ui->lineILVL->setText(topLevelDomainStr); }; + _LoadPersInfoToLocalVars(savedTabIndex); stopFirst = false; ui->tabMainWidget->setTabEnabled(0, false); @@ -2128,9 +2206,6 @@ void nesca_3::ImportScanSeq() ui->tabMainWidget->setTabEnabled(0, false); ui->tabMainWidget->setTabEnabled(1, false); - ui->labelParsed_Value->setText("0/0"); - ui->labelOffline_Value->setText("0"); - strcpy(inputStr, ("DUMMY|-f|" + fileName + "|" + ui->importThreads->text() + "|-p" + ui->importPorts->text().replace(" ", "")).toLocal8Bit().data()); globalScanFlag = true; @@ -2327,15 +2402,11 @@ void nesca_3::ConnectEvrthng() connect ( stt, SIGNAL(changeRedFoundData(QString)), this, SLOT(appendErrText(QString))); connect ( stt, SIGNAL(changeGreenFoundData(QString)), this, SLOT(appendOKText(QString))); connect ( stt, SIGNAL(killSttThread()), this, SLOT(STTTerminate())); - connect ( stt, SIGNAL(changeParsedValue(QString)), ui->labelParsed_Value, SLOT(setText(QString))); - connect ( stt, SIGNAL(changeIpRange(QString)), ui->labelIpRange_Value, SLOT(setText(QString))); - connect ( stt, SIGNAL(changeThreads(QString)), ui->labelThreads_Value, SLOT(setText(QString))); - connect ( stt, SIGNAL(changeIPS(QString)), ui->labelIPS_Value, SLOT(setText(QString))); - connect ( stt, SIGNAL(changeFoundData(QString)), this, SLOT(appendDefaultText(QString))); - connect ( stt, SIGNAL(changeBAValue(QString)), ui->labelBAThreads_Value, SLOT(setText(QString))); - connect ( stt, SIGNAL(changeStatus(QString)), ui->labelStatus_Value, SLOT(setText(QString))); - connect ( stt, SIGNAL(changeTargetsLeft(QString)), ui->labelTargetsLeft_Value, SLOT(setText(QString))); - connect ( stt, SIGNAL(changeOffline(QString)), ui->labelOffline_Value, SLOT(setText(QString))); + + connect ( stt, SIGNAL(signalUpdateArc(unsigned long)), this, SLOT(drawVerboseArcs(unsigned long))); + + connect ( stt, SIGNAL(changeFoundData(QString)), this, SLOT(appendDefaultText(QString))); + connect ( stt, SIGNAL(changeStatus(QString)), ui->labelStatus_Value, SLOT(setText(QString))); connect ( stt, SIGNAL(changeBAData(QString)), ui->BAText, SLOT(append(QString))); connect ( stt, SIGNAL(changeGreenBAData(QString)), this, SLOT(appendGreenBAData(QString))); connect ( stt, SIGNAL(changeRedBAData(QString)), this, SLOT(appendRedBAData(QString))); @@ -2665,8 +2736,26 @@ void _startMsgCheck() ui->dataText->setOpenExternalLinks(true); ui->dataText->setOpenLinks(false); ui->rVerLabel->hide(); - setSceneArea(); - + setSceneArea(); + + dots << 0.5 << 0.3 << 0.5 << 0.3; + dotsThreads << 0.1 << 0.2 << 0.1 << 0.2; + penAllThreads.setCapStyle(Qt::FlatCap); + penAllThreads.setDashPattern(dotsThreads); + penThreads.setCapStyle(Qt::FlatCap); + penBAThreads.setDashPattern(dots); + penBAThreads.setCapStyle(Qt::FlatCap); + penAllTargets.setCapStyle(Qt::FlatCap); + penTargets.setCapStyle(Qt::FlatCap); + penSaved.setCapStyle(Qt::FlatCap); + + multiFontSmallFontPie.setFamily("small_fonts"); + multiFontSmallFontPie.setPixelSize(9); + multiFontSmallFontArc.setFamily("small_fonts"); + multiFontSmallFontArc.setPixelSize(10); + multiFontSmallFontArc.setUnderline(true); + ui->ipLabel->setFont(multiFontSmallFontArc); + tray = new QSystemTrayIcon(QIcon(":/nesca_3/nesca.ico"), this); tray->hide(); @@ -2678,8 +2767,7 @@ void _startMsgCheck() const std::string &gVERStr = GetVer(); strcpy(gVER, gVERStr.c_str()); - QString QVER(gVER); - ui->logoLabel->setToolTip("v3-" + QVER); + ui->logoLabel->setToolTip("v3-" + QString(gVER)); ui->logoLabel->setStyleSheet("color:white; border: none;background-color:black;"); ui->newMessageLabel->setStyleSheet("color:rgba(255, 0, 0, 0);background-color: rgba(2, 2, 2, 0);"); @@ -2690,9 +2778,6 @@ void _startMsgCheck() dtHN->start(); dtME2->start(); adtHN->start(); - - pbPointerFont.setFamily("Eurostile"); - pbPointerFont.setPixelSize(8); #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) WSADATA wsda; @@ -2710,6 +2795,7 @@ void _startMsgCheck() _startVerCheck(); _startMsgCheck(); qrp.setMinimal(true); + drawVerboseArcs(0); } void nesca_3::mousePressEvent(QMouseEvent *event) @@ -2789,9 +2875,7 @@ void nesca_3::STTTerminate() ui->tabMainWidget->setTabEnabled(1, true); ui->tabMainWidget->setTabEnabled(2, true); ui->tabMainWidget->setTabEnabled(3, true); - stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads)); - stt->doEmitionIPS("0"); - stt->doEmitionChangeBA("0"); + stt->doEmitionUpdateArc(0); BrutingThrds = 0; cons = 0; setButtonStyleArea(); @@ -2965,8 +3049,7 @@ void nesca_3::appendErrText(QString str) if(stt->isRunning() == false) { startFlag = false; - stt->doEmitionChangeStatus("Idle"); - stt->doEmitionIPS("0"); + stt->doEmitionChangeStatus("Idle"); ui->startScanButton_3->setText("Start"); stt->terminate(); }; diff --git a/nesca_3.h b/nesca_3.h index 82ed5c5..49d30c2 100644 --- a/nesca_3.h +++ b/nesca_3.h @@ -124,6 +124,7 @@ protected: void appendGreenBAData(QString str); void appendRedBAData(QString str); void STTTerminate(); + void drawVerboseArcs(unsigned long gTargets); private: QPoint dragPosition; }; diff --git a/nesca_3.ui b/nesca_3.ui index 3d489a4..0d45b05 100644 --- a/nesca_3.ui +++ b/nesca_3.ui @@ -1445,9 +1445,9 @@ border-radius: 3px; - 95 - 10 - 306 + 123 + 11 + 271 20 @@ -1535,52 +1535,22 @@ border-radius: 3px; X - - - - 20 - 230 - 61 - 20 - - - - - Small Fonts - 7 - 50 - false - false - true - false - - - - Qt::LeftToRight - - - color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - - - Current IP: - - - 20 - 255 - 61 - 20 + 89 + 325 + 15 + 15 - Small Fonts - 7 + Sans + 10 50 false - true + false false @@ -1588,40 +1558,15 @@ border-radius: 3px; color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - Threads: + ⇶: - + - 20 - 280 - 71 - 20 - - - - - Small Fonts - 7 - 50 - false - true - - - - color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - - - Brute threads: - - - - - - 95 - 230 - 394 + 37 + 351 + 150 20 @@ -1637,7 +1582,7 @@ border-radius: 3px; 7 50 false - false + true @@ -1649,13 +1594,16 @@ border-radius: 3px; -- + + Qt::AlignCenter + - + - 95 - 255 - 91 + 104 + 324 + 67 20 @@ -1672,82 +1620,7 @@ border-radius: 3px; color: rgb(216, 216, 216); background-color: rgba(2, 2, 2, 0); - 0/0 - - - - - - 95 - 280 - 61 - 20 - - - - - Small Fonts - 7 - 50 - false - false - - - - color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - - - 0 - - - - - - 20 - 330 - 61 - 20 - - - - - Small Fonts - 7 - 50 - false - true - - - - color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - - - IP/s: - - - - - - 95 - 330 - 106 - 20 - - - - - Small Fonts - 7 - 50 - false - false - - - - color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - - - 0 + 0/0/0 @@ -1812,78 +1685,10 @@ p, li { white-space: pre-wrap; } false - - - - 20 - 355 - 73 - 20 - - - - - 0 - 0 - - - - - 0 - 0 - - - - - Small Fonts - 7 - 50 - false - true - - - - color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - - - 1 - - - Saved/Online: - - - false - - - - - - 95 - 355 - 108 - 20 - - - - - Small Fonts - 7 - 50 - false - false - - - - color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - - - 0/0 - - - 11 + 19 783 41 10 @@ -1923,7 +1728,7 @@ p, li { white-space: pre-wrap; } - 51 + 58 783 101 10 @@ -1945,34 +1750,34 @@ p, li { white-space: pre-wrap; } - 20 - 305 - 61 + 89 + 335 + 16 20 - Small Fonts - 7 + Sans + 10 50 false - true + false color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - Targets: + ⌬: - + - 95 - 305 - 114 + 104 + 337 + 71 20 @@ -2553,74 +2358,6 @@ p, li { white-space: pre-wrap; } QGraphicsView::CacheNone - - - - 19 - 380 - 73 - 20 - - - - - 0 - 0 - - - - - 0 - 0 - - - - - Small Fonts - 7 - 50 - false - true - - - - color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - - - 1 - - - Offline: - - - false - - - - - - 95 - 380 - 71 - 20 - - - - - Small Fonts - 7 - 50 - false - false - - - - color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); - - - 0 - - @@ -3229,9 +2966,9 @@ background-color: #000000; - 36 - 15 - 86 + 31 + 16 + 82 10 @@ -3291,27 +3028,97 @@ background-color: #000000; + + + + 9 + 229 + 210 + 211 + + + + + Small Fonts + 7 + + + + border:1px white solid;background-color: rgba(26, 26,26, 0); + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QPainter::TextAntialiasing + + + QGraphicsView::CacheNone + + + + + + 104 + 311 + 67 + 20 + + + + + Small Fonts + 7 + 50 + false + false + + + + color: rgb(216, 216, 216); background-color: rgba(2, 2, 2, 0); + + + 0 + + + + + + 89 + 312 + 15 + 15 + + + + + Sans + 10 + 50 + false + false + false + + + + color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0); + + + ✔: + + graphicTextPlacer BAText labelNesca_3 tabMainWidget line exitButton - labelIpRange - labelThreads - labelBaThreads - labelIpRange_Value - labelThreads_Value - labelBAThreads_Value - labelIPS - labelIPS_Value dataText - labelParsed - labelParsed_Value labelStatus labelStatus_Value - labelTargetsLeft - labelTargetsLeft_Value line_2 RedLabel YellowLabel @@ -3334,8 +3141,6 @@ background-color: #000000; graphicDelim graphicLog_2 graphicLog_Upper - labelBadAddr - labelOffline_Value switcherBut labelTracker graphicActivityGrid @@ -3358,6 +3163,14 @@ background-color: #000000; labelSSH rVerLabel NSTrackStatusLabel + graphicsTest + ipLabel + labelTargetsLeft + labelPendingTargets + labelThreads + labelRunningThreads + labelSavedValue + labelSaved @@ -3488,10 +3301,10 @@ background-color: #000000; :Jobs - widget widgetJOB - JobModeBut + widget DataflowModeBut + JobModeBut diff --git a/nesca_startModule.cpp b/nesca_startModule.cpp index ee6655b..beb6837 100644 --- a/nesca_startModule.cpp +++ b/nesca_startModule.cpp @@ -20,7 +20,7 @@ int PieAnomC1 = 0, PieBA = 0, PieSusp = 0, PieLowl = 0, PieWF = 0, PieSSH = 0; int AnomC1 = 0, Filt = 0, Overl = 0, Lowl = 0, Alive = 0, saved = 0, Susp = 0, WF = 0, offlines = 0, ssh = 0; int GlobalNegativeSize = 0; int ipCounter = 0; -int found = 0, indexIP = 1; +int found = 0, indexIP = 0; int gMode; int MaxPass = 0, MaxLogin = 0, MaxTags = 0, MaxWFLogin = 0, MaxWFPass = 0, MaxSSHPass = 0; int ipsstart[4], ipsend[4], @@ -334,23 +334,20 @@ void _timer() { strncpy(b, QString::number(ips).toLocal8Bit().data(), 5); strcpy(metaIPS, b); - strcat(timeLeft, b); - strcat(timeLeft, "/s ("); + //strcat(timeLeft, b); + //strcat(timeLeft, "/s ("); - if (ips > 0) - { - strncpy(dbuffer, std::to_string(((gTargets + 1) / ips / 3600 / 24)).c_str(), 5); - } - else strcpy(dbuffer, "INF"); - strcpy(metaETA, dbuffer); - strcat(dbuffer, "d)"); - strcat(timeLeft, (strcmp(dbuffer, "1.$d)") == 0 ? "INF)" : dbuffer)); + //if (ips > 0) + //{ + // strncpy(dbuffer, std::to_string(((gTargets + 1) / ips / 3600 / 24)).c_str(), 5); + //} + //else strcpy(dbuffer, "INF"); + //strcpy(metaETA, dbuffer); + //strcat(dbuffer, "d)"); + //strcat(timeLeft, (strcmp(dbuffer, "1.$d)") == 0 ? "INF)" : dbuffer)); - - stt->doEmitionIPS(QString(timeLeft)); - - ZeroMemory(timeLeft, sizeof(timeLeft)); - ZeroMemory(dbuffer, sizeof(dbuffer)); + //ZeroMemory(timeLeft, sizeof(timeLeft)); + //ZeroMemory(dbuffer, sizeof(dbuffer)); Sleep(1000); }; @@ -717,7 +714,7 @@ unsigned long int numOfIps(int ipsstart[], int ipsend[]) { gTargets += 65536 * (ipsend[1] - ipsstart[1]); gTargets += 256 * (ipsend[2] - ipsstart[2]); gTargets += (ipsend[3] - ipsstart[3]); - gTargetsOverall = gTargets; + gTargetsOverall = gTargets + 1; //unsigned long ip1 = (ipsstart[0] * 16777216) + (ipsstart[1] * 65536) + (ipsstart[2] * 256) + ipsstart[3]; //unsigned long ip2 = (ipsend[0] * 16777216) + (ipsend[1] * 65536) + (ipsend[2] * 256) + ipsend[3]; @@ -728,13 +725,13 @@ unsigned long int numOfIps(int ipsstart[], int ipsend[]) { void verboseProgress(unsigned long target) { - stt->doEmitionIPRANGE(QString(currentIP)); + stt->doEmitionUpdateArc(gTargets); + if(gTargets > 0) --gTargets; char targetNPers[128] = { 0 }; float percent = (gTargetsOverall != 0 ? (100 - target / (double)gTargetsOverall * 100) : 0); - sprintf(targetNPers, "%Lu (%.1f%%)", target, percent); - stt->doEmitionTargetsLeft(QString(targetNPers)); + sprintf(targetNPers, "%Lu (%.1f%%)", target, percent); sprintf(metaTargets, "%Lu", target); sprintf(metaPercent, "%.1f", @@ -1508,7 +1505,6 @@ int ParseArgs(int argc, char *argv[]) { if (strstr(p, ",") != NULL) { - lex = strtok(p, ","); portArr[indexPorts++] = atoi(lex); @@ -1539,7 +1535,6 @@ int ParseArgs(int argc, char *argv[]) { } else { - lex = strtok(p, "-p"); portArr[indexPorts++] = atoi(lex); }; @@ -1605,8 +1600,6 @@ void ConInc() #else asm("lock; incl cons"); #endif - stt->doEmitionThreads(QString::number(cons) + "/" + - QString::number(gThreads)); } void ConDec() { @@ -1622,8 +1615,7 @@ void ConDec() #endif }; - stt->doEmitionThreads(QString::number(cons) + "/" + - QString::number(gThreads)); + stt->doEmitionUpdateArc(gTargets); } void _connect() { @@ -1726,7 +1718,7 @@ int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder) { ++indexIP; sprintf(currentIP, "%s%s", mask, gTLD); - verboseProgress(gTargets--); + verboseProgress(gTargets); Threader::fireThread(currentIP, (void*(*)(void))_connect); }; @@ -1796,10 +1788,7 @@ int startScan(char* args) { stt->doEmitionKillSttThread(); return -1; - }; - - stt->doEmitionIPRANGE(QString("--")); - stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads)); + }; runAuxiliaryThreads(); @@ -1833,7 +1822,7 @@ int startScan(char* args) { strcpy(currentIP, ipVec[0].c_str()); ipVec.erase(ipVec.begin()); - verboseProgress(gTargets--); + verboseProgress(gTargets); Threader::fireThread(currentIP, (void*(*)(void))_connect); } @@ -1854,7 +1843,7 @@ int startScan(char* args) { tAddr.s_addr = ntohl(i); strcpy(currentIP, inet_ntoa(tAddr)); - verboseProgress(gTargets--); + verboseProgress(gTargets); Threader::fireThread(currentIP, (void*(*)(void))_connect); } @@ -2036,7 +2025,7 @@ int startScan(char* args) { ++indexIP; strcpy(currentIP, ipVec[0].c_str()); ipVec.erase(ipVec.begin()); - verboseProgress(gTargets--); + verboseProgress(gTargets); Threader::fireThread(currentIP, (void*(*)(void))_connect); } @@ -2056,7 +2045,7 @@ int startScan(char* args) { tAddr.s_addr = ntohl(i); strcpy(currentIP, inet_ntoa(tAddr)); - verboseProgress(gTargets--); + verboseProgress(gTargets); Threader::fireThread(currentIP, (void*(*)(void))_connect); } break; @@ -2079,7 +2068,6 @@ int startScan(char* args) { }; stt->doEmitionGreenFoundData("Done. Saved: " + QString::number(saved) + "; Alive: " + QString::number(found) + "."); - stt->doEmitionChangeParsed(QString::number(saved) + "/" + QString::number(found)); stt->doEmitionChangeStatus("Idle"); Sleep(1000); //Wait for lock release