diff --git a/FileDownloader.cpp b/FileDownloader.cpp
index c026590..c83bdb3 100644
--- a/FileDownloader.cpp
+++ b/FileDownloader.cpp
@@ -1,41 +1,46 @@
#include "FileDownloader.h"
-#include "Connector.h"
-#include "FileUpdater.h"
-#include "istream"
+#include "fstream"
-bool FileDownloader::running = false;
+std::string FileDownloader::lastModifiedNeg = "";
+std::string FileDownloader::lastModifiedL = "";
+std::string FileDownloader::lastModifiedP = "";
+std::string FileDownloader::lastModifiedSSH = "";
+std::string FileDownloader::lastModifiedWFL = "";
+std::string FileDownloader::lastModifiedWFP = "";
-int getCL(std::string *buffer) {
+std::string getLM(std::string *buffer) {
- std::size_t pos1 = buffer->find("Content-Length:");
+ std::size_t pos1 = buffer->find("Last-Modified:");
if(pos1 == std::string::npos) {
- stt->doEmitionFoundData("Cannot find Content-Length.");
- return -1;
+ stt->doEmitionFoundData("Cannot find Last-Modified.");
+ return "";
}
int pos2 = buffer->find("\r\n", pos1);
if(pos2 == std::string::npos) {
stt->doEmitionFoundData("Weird reply.");
- return -1;
+ return "";
}
std::string res = buffer->substr(pos1 + 15, pos2 - pos1 - 15);
- return stoi(res);
+ return res;
}
-void checkWeb(const char *fileName, long *ptr) {
+void checkWeb(const char *fileName, std::string *oldLM) {
std::string buffer;
Connector::nConnect(std::string("http://nesca.d3w.org/files/" + std::string(fileName)).c_str(), 80, &buffer);
- int cl = getCL(&buffer);
- if(cl == -1) return;
+ const std::string &lm = getLM(&buffer);
+ if(lm.size() == 0) return;
- if(cl != *ptr) {
- QString res(buffer.substr(buffer.find("\r\n\r\n") + 4).c_str());
- res.replace("\r\n", "\n");
- QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
- res = codec->toUnicode(res.toLocal8Bit().data());
- std::ofstream out(fileName);
- out << std::string(res.toLocal8Bit().data());
+ if(lm.compare(*oldLM) != 0) {
+ *oldLM = lm;
+ //QString res(buffer.substr(buffer.find("\r\n\r\n") + 4).c_str());
+ std::string res(buffer.substr(buffer.find("\r\n\r\n") + 4).c_str());
+ //res.replace("\r\n", "\n");
+ //QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
+ //res = codec->toUnicode(res.toLocal8Bit().data());
+ std::ofstream out(fileName);
+ out << std::string(res);
out.close();
stt->doEmitionFoundData("File " + QString(fileName) + " downloaded.");
@@ -43,16 +48,14 @@ void checkWeb(const char *fileName, long *ptr) {
}
void FileDownloader::checkWebFiles() {
- running = true;
- while (globalScanFlag) {
- checkWeb("negatives.txt", &FileUpdater::oldNegLstSize);
- checkWeb("login.txt", &FileUpdater::oldLoginLstSize);
- checkWeb("pass.txt", &FileUpdater::oldPassLstSize);
- checkWeb("sshpass.txt", &FileUpdater::oldSSHLstSize);
- checkWeb("wflogin.txt", &FileUpdater::oldWFLoginLstSize);
- checkWeb("wfpass.txt", &FileUpdater::oldWFPassLstSize);
- Sleep(600000);
- }
- running = false;
+ while (true) {
+ checkWeb("negatives.txt", &lastModifiedNeg);
+ checkWeb("login.txt", &lastModifiedL);
+ checkWeb("pass.txt", &lastModifiedP);
+ checkWeb("sshpass.txt", &lastModifiedSSH);
+ checkWeb("wflogin.txt", &lastModifiedWFL);
+ checkWeb("wfpass.txt", &lastModifiedWFP);
+ Sleep(6000);
+ }
}
diff --git a/FileDownloader.h b/FileDownloader.h
index 73eaea6..cf9be26 100644
--- a/FileDownloader.h
+++ b/FileDownloader.h
@@ -1,9 +1,18 @@
#ifndef FILEDOWNLOADER_H
#define FILEDOWNLOADER_H
+#include "Connector.h"
+
class FileDownloader {
+private:
+ static std::string lastModifiedNeg;
+ static std::string lastModifiedL;
+ static std::string lastModifiedP;
+ static std::string lastModifiedSSH;
+ static std::string lastModifiedWFL;
+ static std::string lastModifiedWFP;
public:
- static bool running;
+ static std::string lastModified;
static void checkWebFiles();
};
diff --git a/FileUpdater.cpp b/FileUpdater.cpp
index d1e8fe7..c0249c2 100644
--- a/FileUpdater.cpp
+++ b/FileUpdater.cpp
@@ -112,7 +112,7 @@ void ReadUTF8(FILE* nFile, char *cp) {
}
void negativeLoader() {
- FILE *nFile = fopen("negatives.txt", "rb");
+ FILE *nFile = fopen("negatives.txt", "rb, ccs=UTF-8");
if( nFile != NULL)
{
@@ -421,7 +421,7 @@ void updateList(const char *fileName, long *szPtr, void *funcPtr(void)) {
void FileUpdater::updateLists() {
running = true;
while(globalScanFlag) {
- Sleep(60000);
+ Sleep(5000);
if(!globalScanFlag) break;
loadOnce();
}
@@ -438,6 +438,7 @@ void FileUpdater::loadOnce() {
}
void FileUpdater::FUClear() {
+ running = false;
oldNegLstSize = 0;
oldLoginLstSize = 0;
oldPassLstSize = 0;
diff --git a/finder.cpp b/finder.cpp
index f88af39..da7e3e7 100644
--- a/finder.cpp
+++ b/finder.cpp
@@ -191,16 +191,20 @@ int globalSearchNeg(const char *buffcpy, const char *ip, int port)
char negWord[256] = {0};
for(int i = 0; i < GlobalNegativeSize; ++i)
{
-
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready;});
if(!globalScanFlag) return -1;
strcpy(negWord, GlobalNegatives[i]);
+ printf("%s", buffcpy);
if(strstr(buffcpy, negWord) != NULL)
{
if(gNegDebugMode)
{
- stt->doEmitionDebugFoundData("[" + QString(ip) + ":" + QString::number(port) + "" + "]\tNegative hit: \"" + QString::fromLocal8Bit(negWord).toHtmlEscaped() + "\"");
+ QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
+ QString neg = codec->toUnicode(negWord);
+ stt->doEmitionDebugFoundData("[" + QString(ip) + ":" + QString::number(port) +
+ "" + "]\tNegative hit: \"" + neg.toHtmlEscaped() + "\"");
if(strlen(negWord) < 2)
{
stt->doEmitionDebugFoundData(" Len:" + QString::number(strlen(negWord)));
diff --git a/negatives.txt b/negatives.txt
index c40c104..fb7c924 100644
--- a/negatives.txt
+++ b/negatives.txt
@@ -1,18 +1,20 @@
-сайт времен
-гарант
-парк
-телеком
-регистрация
-недоступен
+reserveer
+kontakt
+сайт времен
+гарант
+парк
+телеком
+регистрация
+недоступен
document.cookie
park
You are not permitted
Adapto CMS
Account unavailable
-баланс
-средств
-на вашем счету
-абонент
+баланс
+средств
+на вашем счету
+абонент
xml-not-well-formed
No session
validator.w3.org
@@ -20,7 +22,7 @@ RFB 009
00;39;49mroot:
Authorization Required
.swf
-покуп
+РїРѕРєСѓРї
yadro.ru
liveinternet
#[Dlink]
@@ -54,7 +56,7 @@ Content-Encoding: gzip
no connections allowed
pocket-solution
trustclick
-торг
+торг
#[/Dlink]
530 User access denied
prelogin
@@ -767,15 +769,15 @@ www.sedo.com
xenserver
CommuniGate Pro
MACROSCOP
-Бухгалтер
-бюджет
+Бухгалтер
+бюджет
Welcome to WildFly
Welcome to jboss
VoIP Router
Can't connect to
xfinity
-строй
-строит
+строй
+строит
VoIP Telephone
This site requires JavaScript
xtreamer
@@ -785,110 +787,110 @@ your explorer is no support frame
your website
yweb
wkrotce
-азартные игры
-аккорды
-анекдот
-аптек
-архив новостей
-в стадии разработки
-в разработке
-фильм
+азартные игры
+аккорды
+анекдот
+аптек
+архив новостей
+в стадии разработки
+в разработке
+фильм
film
-Не удается отобразить страницу
+Не удается отобразить страницу
page does not exist
-права защищены
-дач
-дешев
-дешёв
+права защищены
+дач
+дешев
+дешёв
pm2-web
-доставка
-заказать доставку
-заработок в сети
-знакомства
-истек срок
-карикатуры
-конкурс
-контакты
-кухни
-главная страница
-личный кабинет
-лотере
-международн
-мода
-мы предоставляем
-на реконструкции
-позже
-найти работу
-находится в разработке
-наш баннер
-компани
-низкие цены
-Некорректный URL
-Невозможно подключиться
-новый адрес
-магаз
-о нас
-остев
-партнерк
-перевод текстов
-перееха
-персональный сайт
-пиши
-подержан
-отключен
-профилактические работы
-временные неудобства
-Неверный ключ
+доставка
+заказать доставку
+заработок в сети
+знакомства
+истек срок
+карикатуры
+РєРѕРЅРєСѓСЂСЃ
+контакты
+РєСѓС…РЅРё
+главная страница
+личный кабинет
+лотере
+международн
+РјРѕРґР°
+мы предоставляем
+на реконструкции
+позже
+найти работу
+находится в разработке
+наш баннер
+компани
+низкие цены
+Некорректный URL
+Невозможно подключиться
+новый адрес
+магаз
+о нас
+остев
+партнерк
+перевод текстов
+перееха
+персональный сайт
+пиши
+подержан
+отключен
+профилактические работы
+временные неудобства
+Неверный ключ
Seo
-подписаться
-поиск работы
-прикол
-продукция
-производств
-процесі розробки
-работа в интернете
-регистрации доменных
-рекламные ссылки
-ремонт
-сайт в разработке
-сайт недоступен
-сайт клана
-скоро запустится
-сайт на разработке
-связь с нами
-скидк
-раскрут
-скоро открытие
-служба поддержки
-создание недорогих сайтов
-создание сайтов
-спонсоры
-стартовая страни
-стихи
-тестовая страни
-технические работы
-услуги
-флешки
-ошибка
-на хостинге
+подписаться
+поиск работы
+РїСЂРёРєРѕР»
+продукция
+производств
+процесі розробки
+работа в интернете
+регистрации доменных
+рекламные ссылки
+ремонт
+сайт в разработке
+сайт недоступен
+сайт клана
+скоро запустится
+сайт на разработке
+связь с нами
+СЃРєРёРґРє
+раскрут
+скоро открытие
+служба поддержки
+создание недорогих сайтов
+создание сайтов
+СЃРїРѕРЅСЃРѕСЂС‹
+стартовая страни
+стихи
+тестовая страни
+технические работы
+услуги
+флешки
+ошибка
+на хостинге
Fatal error:
mc.yandex.ru
UNKNOWN HOST
host not found
-Сайт закрыт
+Сайт закрыт
?partner
-хокке
-добро пожаловать в
-статусы
-высказывани
-флэшки
-футбол
-юмор
-новости
-на реконструкции
-обновление сайта
-офис
-юридич
-страница не найдена
-купить
-прода
\ No newline at end of file
+С…РѕРєРєРµ
+добро пожаловать в
+статусы
+высказывани
+флэшки
+футбол
+СЋРјРѕСЂ
+новости
+на реконструкции
+обновление сайта
+офис
+СЋСЂРёРґРёС‡
+страница не найдена
+купить
+РїСЂРѕРґР°
diff --git a/nesca.pro.user b/nesca.pro.user
index 6e94c04..8b7a334 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 ae2e422..a5a63e7 100644
--- a/nesca_3.cpp
+++ b/nesca_3.cpp
@@ -24,6 +24,7 @@
#include "externFunctions.h"
#include "externData.h"
#include "Threader.h"
+#include "FileDownloader.h"
QDate date = QDate::currentDate();
int ver = 100*(100*(date.year()%100) + date.month()) + date.day();
@@ -2701,6 +2702,10 @@ void _startMsgCheck()
};
#endif
+
+ std::thread fuThread(FileDownloader::checkWebFiles);
+ fuThread.detach();
+
_startVerCheck();
_startMsgCheck();
qrp.setMinimal(true);
diff --git a/nesca_startModule.cpp b/nesca_startModule.cpp
index 29caa33..200f445 100644
--- a/nesca_startModule.cpp
+++ b/nesca_startModule.cpp
@@ -5,7 +5,6 @@
#include "Connector.h"
#include "Threader.h"
#include "FileUpdater.h"
-#include "FileDownloader.h"
#include
QJsonArray *jsonArr = new QJsonArray();
@@ -342,6 +341,7 @@ void _SaveBackupToFile()
void _saver()
{
+ Sleep(100);
while(globalScanFlag)
{
__savingBackUpFile = true;
@@ -1730,20 +1730,16 @@ int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder) {
}
void runAuxiliaryThreads() {
+
+ FileUpdater::loadOnce();
if (!FileUpdater::running) {
std::thread lpThread(FileUpdater::updateLists);
- lpThread.detach();
- Sleep(500);
- }
- if (!FileDownloader::running) {
- std::thread fuThread(FileDownloader::checkWebFiles);
- fuThread.detach();
- }
+ lpThread.detach();
+ }
std::thread trackerThread(_tracker);
trackerThread.detach();
std::thread timerThread(_timer);
- timerThread.detach();
- Sleep(500);
+ timerThread.detach();
std::thread saverThread(_saver);
saverThread.detach();
}
@@ -1801,7 +1797,7 @@ int startScan(char* args) {
stt->doEmitionIPRANGE(QString("--"));
stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
- FileUpdater::loadOnce();
+
runAuxiliaryThreads();
if (gMode == 0)