mirror of
https://github.com/ChronosX88/nesca.git
synced 2024-12-25 01:01:45 +00:00
negative list utf support
This commit is contained in:
parent
f7dfdb38bb
commit
01e4d262e3
@ -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("<font color=\"Pink\">Cannot find Content-Length.</font>");
|
||||
return -1;
|
||||
stt->doEmitionFoundData("<font color=\"Pink\">Cannot find Last-Modified.</font>");
|
||||
return "";
|
||||
}
|
||||
int pos2 = buffer->find("\r\n", pos1);
|
||||
if(pos2 == std::string::npos) {
|
||||
stt->doEmitionFoundData("<font color=\"Pink\">Weird reply.</font>");
|
||||
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("<font color=\"Pink\">File " + QString(fileName) + " downloaded.</font>");
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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("[<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)
|
||||
{
|
||||
stt->doEmitionDebugFoundData(" Len:" + QString::number(strlen(negWord)));
|
||||
|
230
negatives.txt
230
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
|
||||
хокке
|
||||
добро пожаловать в
|
||||
статусы
|
||||
высказывани
|
||||
флэшки
|
||||
футбол
|
||||
юмор
|
||||
новости
|
||||
на реконструкции
|
||||
обновление сайта
|
||||
офис
|
||||
юридич
|
||||
страница не найдена
|
||||
купить
|
||||
прода
|
||||
хокке
|
||||
добро пожаловать в
|
||||
статусы
|
||||
высказывани
|
||||
флэшки
|
||||
футбол
|
||||
юмор
|
||||
новости
|
||||
на реконструкции
|
||||
обновление сайта
|
||||
офис
|
||||
юридич
|
||||
страница не найдена
|
||||
купить
|
||||
прода
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!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>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
@ -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);
|
||||
|
@ -5,7 +5,6 @@
|
||||
#include "Connector.h"
|
||||
#include "Threader.h"
|
||||
#include "FileUpdater.h"
|
||||
#include "FileDownloader.h"
|
||||
#include <thread>
|
||||
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user