Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.12.2017, 20:37
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Как управлять программой на расстоянии))

Драсть) Есть программа, бот для браузерки...
Хотел бы ограничить доступ к ней. К примеру кину я другу программу, а он своему, а тот еще одному и тд.. Хотелось бы, что бы программа имелась только у тех, кому я её даю.
Сама программа бесплатная.

Думал сделать форму, где логин и пароль... Но и эти данные тоже могут распространятся вместе с программой)_

Как прикажете быть?
Ответить с цитированием
  #2  
Старый 19.12.2017, 20:48
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Можно предварительно узнать у друга конфигурацию железа отдельной утилитой, в обратку получить результат, произвести на своём оборудовании расчёты и отослать с прогой проверочный файл и если, конфа якобы "друга" будет отличаться от расчётной, то значит, не запускаться
Ответить с цитированием
  #3  
Старый 19.12.2017, 21:15
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Можно предварительно узнать у друга конфигурацию железа отдельной утилитой, в обратку получить результат, произвести на своём оборудовании расчёты и отослать с прогой проверочный файл и если, конфа якобы "друга" будет отличаться от расчётной, то значит, не запускаться
Слишком много телодвижений получается с передачей)
Мне бы реализовать всё в одном exe, и забыть про эту проблему.
Может есть еще какие-нибудь способы? Не обязательно сложные.
Ибо пользоваться будут люди, далёкие от взломов и тд.
Логин и пароль слишком банально)
а ваш вариант, задействует меня, даже после того, как я написал бота)

Неправильно назвал тему.. простите) просто куча вариантов пробегает в голове, аж путаюсь)

Последний раз редактировалось Gareth, 19.12.2017 в 21:21.
Ответить с цитированием
  #4  
Старый 19.12.2017, 21:29
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

М... подумав и погуглив, понял что это гиблое дело..
И ваш вариант похоже единственный, который мне подойдет...
Ответить с цитированием
  #5  
Старый 19.12.2017, 22:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, многие протекторы имеют встроенную такую функциональность.
Если будут пользоваться люди далекие от взлома, то можно реализовать самому упрощенный вариант. Примерно так:
1. При старте читаем какой-то (свой) ключ реестра.
2.1. Если ключ пустой, то получаем идентификаторы оборудования, собираем, типа, уникальную строку, считаем хэш от этой строки и:
а. Пишем в вышеуказанный ключ реестра
б. Показыаем на экран для отправки тебе
с. Завершаем работу
2.2. Если ключ не пустой, то сверяем с тем значением который зашит в программу и с тем, что посчитали (защита от простой замены хэша). Если все сходится, то продолжаем работу, если нет - то выходим.
Неудобство - придется пересобирать программу для каждого пользователя. Можно в программе вести список разрешенных ключей, тогда при выпуске новой версии не надо будет пересобирать ее для каждого.
Если есть свой сайт, то можно сделать проверку через сеть. Т.е. программа читает и считает ключи и отправляет их на сайт. С сайта просто получает ОК или нет. В принциае, в таком случае сохранять ключ в реестре и показыват на экран не обязательно, просто скрипт на сервере может прописывать новые ключи в лог, а ты потом их уже будешь заносить в соотв. базу.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Gareth (20.12.2017)
  #6  
Старый 19.12.2017, 22:29
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вот получился пример, генератор только нужно уничтожать после привязки, а иначе, такое будет работать на любой машинке
Вложения
Тип файла: zip kgs.zip (5.0 Кбайт, 4 просмотров)
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Gareth (20.12.2017)
  #7  
Старый 20.12.2017, 07:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вот мой вариант (Belphi 10.1 Berlin).
Все в OnCreate формы (лучше бы вынести в файл проекта, но для упрощения демонстрации так лучше). Все, что на форме - это просто для отладки.
Ну а все функции в отдельном модуле - KeyUtils.pas. При появлении новоко клиента, получаешь у него ключ и добавляешь в массив ValidKeys, пересобираешь и отсылаешь клиенту новую версию.
Вложения
Тип файла: zip HrdwrRegKey.zip (51.7 Кбайт, 0 просмотров)
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Gareth (25.02.2020)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter