diff --git a/NescaLogicStarter.cpp b/NescaLogicStarter.cpp new file mode 100644 index 0000000..a228b25 --- /dev/null +++ b/NescaLogicStarter.cpp @@ -0,0 +1,5 @@ +#include "NescaLogicStarter.h" + +int NLC::startScan(const char* args){ + +} \ No newline at end of file diff --git a/NescaLogicStarter.h b/NescaLogicStarter.h new file mode 100644 index 0000000..e2909e0 --- /dev/null +++ b/NescaLogicStarter.h @@ -0,0 +1,75 @@ +#ifndef NESCALOGICSTARTER_H +#define NESCALOGICSTARTER_H + +class NLC { +public: + NLC(){ + + } + ~NLC(){ + /*FileUpdater::FUClear(); + Threader::cleanUp(); + curl_global_cleanup(); + + while (__savingBackUpFile) Sleep(100); + + if (loginLst != NULL) + { + for (int i = 0; i < MaxLogin; ++i) delete[]loginLst[i]; + delete[]loginLst; + loginLst = NULL; + }; + if (passLst != NULL) + { + for (int i = 0; i < MaxPass; ++i) delete[]passLst[i]; + delete[]passLst; + passLst = NULL; + }; + if (GlobalNegatives != NULL) + { + for (int i = 0; i < GlobalNegativeSize; ++i) delete[]GlobalNegatives[i]; + delete[]GlobalNegatives; + GlobalNegatives = NULL; + }; + if (wfPassLst != NULL) + { + for (int i = 0; i < MaxWFPass; ++i) delete[]wfPassLst[i]; + delete[]wfPassLst; + wfPassLst = NULL; + }; + if (wfLoginLst != NULL) + { + for (int i = 0; i < MaxWFLogin; ++i) delete[]wfLoginLst[i]; + delete[]wfLoginLst; + wfLoginLst = NULL; + }; + if (sshlpLst != NULL) + { + for (int i = 0; i < MaxSSHPass; ++i) delete[]sshlpLst[i]; + delete[]sshlpLst; + sshlpLst = NULL; + }; + if (ipsstartfl != NULL) + { + for (int i = 0; i < flCounter; ++i) delete[]ipsstartfl[i]; + delete[]ipsstartfl; + ipsstartfl = NULL; + }; + if (ipsendfl != NULL) + { + for (int i = 0; i < flCounter; ++i) delete[]ipsendfl[i]; + delete[]ipsendfl; + ipsendfl = NULL; + }; + if (starterIP != NULL) + { + for (int i = 0; i < flCounter; ++i) delete[]starterIP[i]; + delete[]starterIP; + starterIP = NULL; + };*/ + } + int startScan(const char* args); + +}; + +#endif // NESCALOGICSTARTER_H \ No newline at end of file diff --git a/nesca_3.cpp b/nesca_3.cpp index 99a5e3e..ba6fdb1 100644 --- a/nesca_3.cpp +++ b/nesca_3.cpp @@ -1325,7 +1325,6 @@ void nesca_3::importAndScan() if(stopFirst == false) { stopFirst = true; - globalScanFlag = false; ui->importButton->setStyleSheet( " QPushButton {" "background-color: qlineargradient(spread:none, x1:1, y1:0, x2:1, y2:1, stop:0.681818 rgba(0, 0, 0, 250), stop:1 rgba(255, 255, 255, 130));" @@ -1340,7 +1339,6 @@ void nesca_3::importAndScan() } else { - globalScanFlag = false; ui->importButton->setStyleSheet( " QPushButton {" "background-color: qlineargradient(spread:none, x1:1, y1:0, x2:1, y2:1, stop:0.681818 rgba(0, 0, 0, 250), stop:1 rgba(255, 255, 255, 130));" @@ -2076,7 +2074,6 @@ void nesca_3::IPScanSeq() stt->start(); startFlag = true; - globalScanFlag = true; ui->startScanButton_3->setText("Stop"); ui->startScanButton_3->setStyleSheet( " QPushButton {" @@ -2156,7 +2153,6 @@ void nesca_3::DNSScanSeq() stt->start(); startFlag = true; - globalScanFlag = true; ui->startScanButton_4->setText("Stop"); ui->startScanButton_4->setStyleSheet( " QPushButton {" @@ -2193,10 +2189,9 @@ void nesca_3::ImportScanSeq() ui->tabMainWidget->setTabEnabled(0, false); ui->tabMainWidget->setTabEnabled(1, false); - saveOptions(); + _LoadPersInfoToLocalVars(savedTabIndex); strcpy(inputStr, ("DUMMY|-f|" + fileName + "|" + ui->importThreads->text() + "|-p" + ui->importPorts->text().replace(" ", "")).toLocal8Bit().data()); - globalScanFlag = true; stt->start(); startFlag = true; stopFirst = false; @@ -2814,11 +2809,9 @@ void nesca_3::exitButtonClicked() { STTTerminate(); while (__savingBackUpFile) Sleep(100); - //nCleanup(); #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) WSACleanup(); #endif -// stt->terminate(); qApp->quit(); } @@ -2865,12 +2858,11 @@ void nesca_3::STTTerminate() ui->tabMainWidget->setTabEnabled(2, true); ui->tabMainWidget->setTabEnabled(3, true); BrutingThrds = 0; - cons = 0; - stt->doEmitionUpdateArc(0); setButtonStyleArea(); + stt->doEmitionUpdateArc(0); ui->startScanButton_3->setText("Start"); ui->startScanButton_4->setText("Start"); - ui->importButton->setText("Import&&Scan"); + ui->importButton->setText("Import"); ui->labelStatus_Value->setText("Idle"); } diff --git a/nesca_startModule.cpp b/nesca_startModule.cpp index 9783fdc..43e1d0c 100644 --- a/nesca_startModule.cpp +++ b/nesca_startModule.cpp @@ -309,8 +309,10 @@ void _SaveBackupToFile() ZeroMemory(saveBuffer, strlen(saveBuffer)); } +bool saverRunning = false; void _saver() { + saverRunning = true; Sleep(1000); while (globalScanFlag) { @@ -319,9 +321,12 @@ void _saver() __savingBackUpFile = false; Sleep(10000); }; + saverRunning = false; } +bool timerRunning = false; void _timer() { + timerRunning = true; char dbuffer[32] = { 0 }, timeLeft[64] = { 0 }, b[32] = { 0 }; int ticks = 0; int ovrlIPs = 0; @@ -354,9 +359,12 @@ void _timer() { Sleep(1000); }; + timerRunning = false; } +bool trackerRunning = false; void _tracker() { + trackerRunning = true; while (true) { while (globalScanFlag && !trackerOK) Sleep(1000); @@ -710,6 +718,8 @@ void _tracker() { CSSOCKET(sock); } + + trackerRunning = false; } unsigned long int numOfIps(int ipsstart[], int ipsend[]) { @@ -1623,7 +1633,8 @@ void _connect() { if (!globalScanFlag) break; if (Connector::_ConnectToPort((char*)ip.c_str(), portArr[i]) == -2) break; }; - if (cons > 0) --cons; + //if (cons > 0) --cons; + --cons; stt->doEmitionUpdateArc(gThreads); } else lk.unlock(); @@ -1709,12 +1720,18 @@ void runAuxiliaryThreads() { std::thread lpThread(FileUpdater::updateLists); lpThread.detach(); } - std::thread trackerThread(_tracker); - trackerThread.detach(); - std::thread timerThread(_timer); - timerThread.detach(); - std::thread saverThread(_saver); - saverThread.detach(); + if (!trackerRunning) { + std::thread trackerThread(_tracker); + trackerThread.detach(); + } + if (!timerRunning) { + std::thread timerThread(_timer); + timerThread.detach(); + } + if (!saverRunning) { + std::thread saverThread(_saver); + saverThread.detach(); + } } @@ -1768,6 +1785,7 @@ int startScan(char* args) { return -1; }; + globalScanFlag = true; runAuxiliaryThreads(); if (gMode == 0) @@ -2048,10 +2066,8 @@ int startScan(char* args) { stt->doEmitionGreenFoundData("Done. Saved: " + QString::number(saved) + "; Alive: " + QString::number(found) + "."); stt->doEmitionChangeStatus("Idle"); - while (__savingBackUpFile) Sleep(100); nCleanup(); stt->doEmitionKillSttThread(); - //stt->terminate(); } void nCleanup(){ @@ -2059,6 +2075,8 @@ void nCleanup(){ Threader::cleanUp(); curl_global_cleanup(); + while (__savingBackUpFile) Sleep(100); + if (loginLst != NULL) { for (int i = 0; i < MaxLogin; ++i) delete[]loginLst[i]; diff --git a/version b/version index 830806d..52ce8ad 100644 --- a/version +++ b/version @@ -1 +1 @@ -24B84-7DD \ No newline at end of file +24B84-85E \ No newline at end of file