negative list utf support

This commit is contained in:
cora48 2015-04-02 13:26:32 +03:00
parent f7dfdb38bb
commit 01e4d262e3
8 changed files with 182 additions and 162 deletions

View File

@ -1,41 +1,46 @@
#include "FileDownloader.h" #include "FileDownloader.h"
#include "Connector.h" #include "fstream"
#include "FileUpdater.h"
#include "istream"
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) { if(pos1 == std::string::npos) {
stt->doEmitionFoundData("<font color=\"Pink\">Cannot find Content-Length.</font>"); stt->doEmitionFoundData("<font color=\"Pink\">Cannot find Last-Modified.</font>");
return -1; return "";
} }
int pos2 = buffer->find("\r\n", pos1); int pos2 = buffer->find("\r\n", pos1);
if(pos2 == std::string::npos) { if(pos2 == std::string::npos) {
stt->doEmitionFoundData("<font color=\"Pink\">Weird reply.</font>"); stt->doEmitionFoundData("<font color=\"Pink\">Weird reply.</font>");
return -1; return "";
} }
std::string res = buffer->substr(pos1 + 15, pos2 - pos1 - 15); 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; std::string buffer;
Connector::nConnect(std::string("http://nesca.d3w.org/files/" + std::string(fileName)).c_str(), 80, &buffer); Connector::nConnect(std::string("http://nesca.d3w.org/files/" + std::string(fileName)).c_str(), 80, &buffer);
int cl = getCL(&buffer); const std::string &lm = getLM(&buffer);
if(cl == -1) return; if(lm.size() == 0) return;
if(cl != *ptr) { if(lm.compare(*oldLM) != 0) {
QString res(buffer.substr(buffer.find("\r\n\r\n") + 4).c_str()); *oldLM = lm;
res.replace("\r\n", "\n"); //QString res(buffer.substr(buffer.find("\r\n\r\n") + 4).c_str());
QTextCodec *codec = QTextCodec::codecForName("Windows-1251"); std::string res(buffer.substr(buffer.find("\r\n\r\n") + 4).c_str());
res = codec->toUnicode(res.toLocal8Bit().data()); //res.replace("\r\n", "\n");
std::ofstream out(fileName); //QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
out << std::string(res.toLocal8Bit().data()); //res = codec->toUnicode(res.toLocal8Bit().data());
std::ofstream out(fileName);
out << std::string(res);
out.close(); out.close();
stt->doEmitionFoundData("<font color=\"Pink\">File " + QString(fileName) + " downloaded.</font>"); stt->doEmitionFoundData("<font color=\"Pink\">File " + QString(fileName) + " downloaded.</font>");
@ -43,16 +48,14 @@ void checkWeb(const char *fileName, long *ptr) {
} }
void FileDownloader::checkWebFiles() { void FileDownloader::checkWebFiles() {
running = true; while (true) {
while (globalScanFlag) { checkWeb("negatives.txt", &lastModifiedNeg);
checkWeb("negatives.txt", &FileUpdater::oldNegLstSize); checkWeb("login.txt", &lastModifiedL);
checkWeb("login.txt", &FileUpdater::oldLoginLstSize); checkWeb("pass.txt", &lastModifiedP);
checkWeb("pass.txt", &FileUpdater::oldPassLstSize); checkWeb("sshpass.txt", &lastModifiedSSH);
checkWeb("sshpass.txt", &FileUpdater::oldSSHLstSize); checkWeb("wflogin.txt", &lastModifiedWFL);
checkWeb("wflogin.txt", &FileUpdater::oldWFLoginLstSize); checkWeb("wfpass.txt", &lastModifiedWFP);
checkWeb("wfpass.txt", &FileUpdater::oldWFPassLstSize); Sleep(6000);
Sleep(600000); }
}
running = false;
} }

View File

@ -1,9 +1,18 @@
#ifndef FILEDOWNLOADER_H #ifndef FILEDOWNLOADER_H
#define FILEDOWNLOADER_H #define FILEDOWNLOADER_H
#include "Connector.h"
class FileDownloader { 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: public:
static bool running; static std::string lastModified;
static void checkWebFiles(); static void checkWebFiles();
}; };

View File

@ -112,7 +112,7 @@ void ReadUTF8(FILE* nFile, char *cp) {
} }
void negativeLoader() { void negativeLoader() {
FILE *nFile = fopen("negatives.txt", "rb"); FILE *nFile = fopen("negatives.txt", "rb, ccs=UTF-8");
if( nFile != NULL) if( nFile != NULL)
{ {
@ -421,7 +421,7 @@ void updateList(const char *fileName, long *szPtr, void *funcPtr(void)) {
void FileUpdater::updateLists() { void FileUpdater::updateLists() {
running = true; running = true;
while(globalScanFlag) { while(globalScanFlag) {
Sleep(60000); Sleep(5000);
if(!globalScanFlag) break; if(!globalScanFlag) break;
loadOnce(); loadOnce();
} }
@ -438,6 +438,7 @@ void FileUpdater::loadOnce() {
} }
void FileUpdater::FUClear() { void FileUpdater::FUClear() {
running = false;
oldNegLstSize = 0; oldNegLstSize = 0;
oldLoginLstSize = 0; oldLoginLstSize = 0;
oldPassLstSize = 0; oldPassLstSize = 0;

View File

@ -191,16 +191,20 @@ int globalSearchNeg(const char *buffcpy, const char *ip, int port)
char negWord[256] = {0}; char negWord[256] = {0};
for(int i = 0; i < GlobalNegativeSize; ++i) for(int i = 0; i < GlobalNegativeSize; ++i)
{ {
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready;}); FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready;});
if(!globalScanFlag) return -1; if(!globalScanFlag) return -1;
strcpy(negWord, GlobalNegatives[i]); strcpy(negWord, GlobalNegatives[i]);
printf("%s", buffcpy);
if(strstr(buffcpy, negWord) != NULL) if(strstr(buffcpy, negWord) != NULL)
{ {
if(gNegDebugMode) if(gNegDebugMode)
{ {
stt->doEmitionDebugFoundData("[<a href=\"http://" + QString(ip) + ":" + QString::number(port) + "/\"><font color=\"#0084ff\">" + QString(ip) + ":" + QString::number(port) + "</font></a>" + "]\tNegative hit: \"" + QString::fromLocal8Bit(negWord).toHtmlEscaped() + "\""); QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
QString neg = codec->toUnicode(negWord);
stt->doEmitionDebugFoundData("[<a href=\"http://" + QString(ip) + ":" + QString::number(port) +
"/\"><font color=\"#0084ff\">" + QString(ip) + ":" + QString::number(port) +
"</font></a>" + "]\tNegative hit: \"" + neg.toHtmlEscaped() + "\"");
if(strlen(negWord) < 2) if(strlen(negWord) < 2)
{ {
stt->doEmitionDebugFoundData(" Len:" + QString::number(strlen(negWord))); stt->doEmitionDebugFoundData(" Len:" + QString::number(strlen(negWord)));

View File

@ -1,18 +1,20 @@
сайт времен reserveer
гарант kontakt
парк сайт времен
телеком гарант
регистрация парк
недоступен телеком
регистрация
недоступен
document.cookie document.cookie
park park
You are not permitted You are not permitted
Adapto CMS Adapto CMS
Account unavailable Account unavailable
баланс баланс
средств средств
на вашем счету на вашем счету
абонент абонент
xml-not-well-formed xml-not-well-formed
No session No session
validator.w3.org validator.w3.org
@ -20,7 +22,7 @@ RFB 009
00;39;49mroot: 00;39;49mroot:
Authorization Required Authorization Required
.swf .swf
покуп покуп
yadro.ru yadro.ru
liveinternet liveinternet
#[Dlink] #[Dlink]
@ -54,7 +56,7 @@ Content-Encoding: gzip
no connections allowed no connections allowed
pocket-solution pocket-solution
trustclick trustclick
торг торг
#[/Dlink] #[/Dlink]
530 User access denied 530 User access denied
prelogin prelogin
@ -767,15 +769,15 @@ www.sedo.com
xenserver xenserver
CommuniGate Pro CommuniGate Pro
MACROSCOP MACROSCOP
Бухгалтер Бухгалтер
бюджет бюджет
Welcome to WildFly Welcome to WildFly
Welcome to jboss Welcome to jboss
VoIP Router VoIP Router
Can't connect to Can't connect to
xfinity xfinity
строй строй
строит строит
VoIP Telephone VoIP Telephone
This site requires JavaScript This site requires JavaScript
xtreamer xtreamer
@ -785,110 +787,110 @@ your explorer is no support frame
your website your website
yweb yweb
wkrotce wkrotce
азартные игры азартные игры
аккорды аккорды
анекдот анекдот
аптек аптек
архив новостей архив новостей
в стадии разработки в стадии разработки
в разработке в разработке
фильм фильм
film film
Не удается отобразить страницу Не удается отобразить страницу
page does not exist page does not exist
права защищены права защищены
дач дач
дешев дешев
дешёв дешёв
pm2-web pm2-web
доставка доставка
заказать доставку заказать доставку
заработок в сети заработок в сети
знакомства знакомства
истек срок истек срок
карикатуры карикатуры
конкурс конкурс
контакты контакты
кухни кухни
главная страница главная страница
личный кабинет личный кабинет
лотере лотере
международн международн
мода мода
мы предоставляем мы предоставляем
на реконструкции на реконструкции
позже позже
найти работу найти работу
находится в разработке находится в разработке
наш баннер наш баннер
компани компани
низкие цены низкие цены
Некорректный URL Некорректный URL
Невозможно подключиться Невозможно подключиться
новый адрес новый адрес
магаз магаз
о нас о нас
остев остев
партнерк партнерк
перевод текстов перевод текстов
перееха перееха
персональный сайт персональный сайт
пиши пиши
подержан подержан
отключен отключен
профилактические работы профилактические работы
временные неудобства временные неудобства
Неверный ключ Неверный ключ
Seo Seo
подписаться подписаться
поиск работы поиск работы
прикол прикол
продукция продукция
производств производств
процесі розробки процесі розробки
работа в интернете работа в интернете
регистрации доменных регистрации доменных
рекламные ссылки рекламные ссылки
ремонт ремонт
сайт в разработке сайт в разработке
сайт недоступен сайт недоступен
сайт клана сайт клана
скоро запустится скоро запустится
сайт на разработке сайт на разработке
связь с нами связь с нами
скидк скидк
раскрут раскрут
скоро открытие скоро открытие
служба поддержки служба поддержки
создание недорогих сайтов создание недорогих сайтов
создание сайтов создание сайтов
спонсоры спонсоры
стартовая страни стартовая страни
стихи стихи
тестовая страни тестовая страни
технические работы технические работы
услуги услуги
флешки флешки
ошибка ошибка
на хостинге на хостинге
Fatal error: Fatal error:
mc.yandex.ru mc.yandex.ru
UNKNOWN HOST UNKNOWN HOST
host not found host not found
Сайт закрыт Сайт закрыт
?partner ?partner
хокке хокке
добро пожаловать в добро пожаловать в
статусы статусы
высказывани высказывани
флэшки флэшки
футбол футбол
юмор юмор
новости новости
на реконструкции на реконструкции
обновление сайта обновление сайта
офис офис
юридич юридич
страница не найдена страница не найдена
купить купить
прода прода

View File

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

View File

@ -24,6 +24,7 @@
#include "externFunctions.h" #include "externFunctions.h"
#include "externData.h" #include "externData.h"
#include "Threader.h" #include "Threader.h"
#include "FileDownloader.h"
QDate date = QDate::currentDate(); QDate date = QDate::currentDate();
int ver = 100*(100*(date.year()%100) + date.month()) + date.day(); int ver = 100*(100*(date.year()%100) + date.month()) + date.day();
@ -2701,6 +2702,10 @@ void _startMsgCheck()
}; };
#endif #endif
std::thread fuThread(FileDownloader::checkWebFiles);
fuThread.detach();
_startVerCheck(); _startVerCheck();
_startMsgCheck(); _startMsgCheck();
qrp.setMinimal(true); qrp.setMinimal(true);

View File

@ -5,7 +5,6 @@
#include "Connector.h" #include "Connector.h"
#include "Threader.h" #include "Threader.h"
#include "FileUpdater.h" #include "FileUpdater.h"
#include "FileDownloader.h"
#include <thread> #include <thread>
QJsonArray *jsonArr = new QJsonArray(); QJsonArray *jsonArr = new QJsonArray();
@ -342,6 +341,7 @@ void _SaveBackupToFile()
void _saver() void _saver()
{ {
Sleep(100);
while(globalScanFlag) while(globalScanFlag)
{ {
__savingBackUpFile = true; __savingBackUpFile = true;
@ -1730,20 +1730,16 @@ int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder) {
} }
void runAuxiliaryThreads() { void runAuxiliaryThreads() {
FileUpdater::loadOnce();
if (!FileUpdater::running) { if (!FileUpdater::running) {
std::thread lpThread(FileUpdater::updateLists); std::thread lpThread(FileUpdater::updateLists);
lpThread.detach(); lpThread.detach();
Sleep(500); }
}
if (!FileDownloader::running) {
std::thread fuThread(FileDownloader::checkWebFiles);
fuThread.detach();
}
std::thread trackerThread(_tracker); std::thread trackerThread(_tracker);
trackerThread.detach(); trackerThread.detach();
std::thread timerThread(_timer); std::thread timerThread(_timer);
timerThread.detach(); timerThread.detach();
Sleep(500);
std::thread saverThread(_saver); std::thread saverThread(_saver);
saverThread.detach(); saverThread.detach();
} }
@ -1801,7 +1797,7 @@ int startScan(char* args) {
stt->doEmitionIPRANGE(QString("--")); stt->doEmitionIPRANGE(QString("--"));
stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads)); stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
FileUpdater::loadOnce();
runAuxiliaryThreads(); runAuxiliaryThreads();
if (gMode == 0) if (gMode == 0)