Загрузка...

Делаем свою проверку подписки. C++

Тема в разделе C/C++ создана пользователем Checkerchin 8 апр 2018. (поднята 8 апр 2018) 389 просмотров

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

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

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

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

    Код

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

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

    Код

    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
     
    8 апр 2018 Изменено
  2. Yffhnlol
    Yffhnlol 9 апр 2018 come in stranger 26 24 дек 2017
    тут лучше не посылать , а уже дописать раз взялся , что strcmp() - метод компаратор и когда строчки равны , то функция возвращает ноль.
     
  3. Checkerchin
    Checkerchin Автор темы 10 апр 2018 178 16 апр 2017
    поправил
     
Top