Загрузка...

We do our subscription verification. C++

Thread in C/C++ created by Checkerchin Apr 8, 2018. (bumped Apr 8, 2018) 407 views

  1. Checkerchin
    Checkerchin Topic starter Apr 8, 2018 178 Apr 16, 2017
    Здарова всем, сегодня мы будем делать проверку активации на вашей подписке.
    Ее вы могли видеть в разных лицензионных программах.
    Будем делать все просто, без сирийников и MD5.
    Обойдемся только именем компутера и XOR.

    Сразу скажу о минусах этой подписки:
    Ее легко обойти, сделав у компьютера имя уже активированного пользователя.

    Начнем!
    Code
    #include <windows.h>
    Code
    TCHAR buffer[MAX_COMPUTERNAME_LENGTH + 1];
    Создали буффер, с размером 15 + 1. Зачем прибавлять 1? Затем, что есть еще и ноль, который используется, как маркер конца строки.
    Code

    DWORD len = MAX_COMPUTERNAME_LENGTH; //Тут уже не нужен +1
    GetComputerName(buffer, &len);
    Б
    ерем и достаем имя компьютера и записываем в переменную buffer.
    Дальше нужно зашифровать наше имя, чтобы не сразу люди сломали нашу подписку.
    Делать мы будем это с помощью xor, а точнее шифровать им каждую ячейку массива.

    Code

    for (int i = 0; i < lstrlen(buffer); ++i) {
    buffer[i] ^= 23;
    }
    Почему
    Code
    buffer[i] ^= 23;
    тут написано 23? 23 - ключ шифрования, например 1 ^ 2 = 3, а 1 ^ 6 = 7.
    Думаю понятно.
    Далее делаем проверку, если вы умелец, вы можете сделать на хостинге проверку, то есть на хостинг закинуть файл и с помощью функции internetreadfile прочитать содержимое файла и проверить.

    Но я обойдусь только If и else

    Code

    if (lstrcmp(L"ZACOFOYE", buffer) == 0) {
    return true;
    }
    else {
    return false;
    }

    Это все моя функция типа bool, поэтому возвращается true или false, в Main.cpp есть проверка возвратного значения.
    ZACOFOYE - имя компьютера моего, только под другим XOR

    Почему идет проверка на ноль с функцией lstrcmp? - https://msdn.microsoft.com/en-us/library/windows/desktop/ms647488(v=vs.85).aspx пункт "Return value",
    последнее предложение.
    Потому что, когда строки одинаковы возвращает 0.

    Вот и все.

    #МояСтатья

    RaysMorgan
     
  2. Yffhnlol
    Yffhnlol Apr 9, 2018 come in stranger 26 Dec 24, 2017
  3. Checkerchin
    Checkerchin Topic starter Apr 10, 2018 178 Apr 16, 2017
    поправил
     
Loading...
Top