Авторизация/Привязка в софте [КОД]

Тема в разделе "Delphi", создана пользователем GriZ_ZLeY, 21 фев 2015.

  1. Гость, давай поддержим форум вместе, делись информацией с друзями через кнопки в блоке "Поделиться в социальных сетях"

    Скрыть объявление
  1. GriZ_ZLeY

    GriZ_ZLeY Продавец

    
    Регистр:
    20 фев 2015
    Сообщения:
    660
    Лайки:
    334
    Дизлайки:
    0
    Баллы:
    100
    Пол:
    Мужской
    Всем привет.
    Многие хотели создать свою авторизацию или привязку в софте, не не понимали как.
    Сейчас я вам дам свой код в помощь, он не какой не приватный, но писал его я сам.
    P.S Если вы его где-то найдете такой же код не надо орать, может кто-то тоже так сделал
    И так, на форму кладем компонент Idhttp.
    • Сначала мы сделать проверку исключений, в случае сбоя программы. Для это будем использовать команды try, except, exception. И так же поставим простой код Edit1.Text:='No'; Мне лень объяснять для чего он, просто поставьте, а когда разберем код, вы поймете :)
    • Теперь объявим переменную WideString, имя переменной будет пусть "pr".
    • Теперь мы должны послать запрос на сайт. Для этого мы будет использовать команду Idhttp.Get, пишем pr:=Idhttp1.Get('http://sait.com/licenz/' edit2.text '.txt');
    • if pr=' ' then
      begin
      ShowMessage('Зареган');
      Edit1.Text:='';
      end
    • Проверяем что будет если есть текст внутри файла на сервере
      else
      begin
      Edit1.Text:='';
      MessageDLG('Ваш аккаунт забанен!',mtError,[mbYes],0);
      ExitProcess(0);
      end;
    • Возвращаемся к исключениям, мы должны обработать блок TRY и продолжить программу блокам Except, другими словами говоря, обработать ошибки в блоки TRY.
    • Теперь наша программа должна среагировать на исключения при их нахождении, для этого будем использовать конструкцию on e:Exception do, после этого закрываем код.
    • И самое последнее это проверка если нету ключа лицензии. Тут все просто, возвращаемся к нашему edit1.text если все проходило гладко, он очищался (если аккаунт был забанен и ли успешно зареган), а если текст "No" оставался, то это означает, что те процедуры не прошли и такого ключа лицензии нету, пишем код:
      if Edit1.Text = 'No' then
      begin
      MessageDLG('Нет лицензии',mtError,[mbYes],0);
      end;
    • И да, в edit2 должен быть номер диска или что вы там проверяете.

    Вот и все, мы написали проверку лицензии, вот полный код:
    Edit1.Text:='No';
    try
    pr:=IdHTTP1.Get('http://sait.com/licenz/' edit2.text '.txt');
    if pr='' then
    begin
    ShowMessage('Зареган');
    Edit1.Text:='';
    end
    else
    begin
    Edit1.Text:='';
    MessageDLG('Ваш аккаунт забанен!',mtError,[mbYes],0);
    ExitProcess(0);
    end;
    except
    on e:Exception do
    end;
    if Edit1.Text = 'No' then
    begin
    MessageDLG('Нет лицензии',mtError,[mbYes],0);
    end;


    Всем удачи с написанием софта :)
    p.s. by GrizzLey - Чтобы нормально защитить своё ПО, как минимум потратьте деньги на нормальный протектор. Ещё лучше заплатить знающимся людям за защиту (например PC-RET).
    p.s.s. Если не ошибаюсь, данную авторизацию можно убрать через Ollydbg за 1 минуту)