mirror of
https://github.com/ChronosX88/nesca.git
synced 2024-11-23 10:42:21 +00:00
negative list utf support
This commit is contained in:
parent
f7dfdb38bb
commit
01e4d262e3
@ -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");
|
||||||
|
//QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
|
||||||
|
//res = codec->toUnicode(res.toLocal8Bit().data());
|
||||||
std::ofstream out(fileName);
|
std::ofstream out(fileName);
|
||||||
out << std::string(res.toLocal8Bit().data());
|
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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)));
|
||||||
|
230
negatives.txt
230
negatives.txt
@ -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
|
||||||
хокке
|
хокке
|
||||||
добро пожаловать в
|
добро пожаловать в
|
||||||
статусы
|
статусы
|
||||||
высказывани
|
высказывани
|
||||||
флэшки
|
флэшки
|
||||||
футбол
|
футбол
|
||||||
юмор
|
юмор
|
||||||
новости
|
новости
|
||||||
на реконструкции
|
на реконструкции
|
||||||
обновление сайта
|
обновление сайта
|
||||||
офис
|
офис
|
||||||
юридич
|
юридич
|
||||||
страница не найдена
|
страница не найдена
|
||||||
купить
|
купить
|
||||||
прода
|
прода
|
||||||
|
@ -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>
|
||||||
|
@ -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);
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user