Подтверждение системного времени - PullRequest
1 голос
/ 02 февраля 2012

Я пытаюсь создать систему, которая в основном позволяет мне загружать DLL в установку и некоторый код в исполняемый файл, который позволяет мне выпускать все мои будущие программы как бета-версии на некоторое время.

Теперь проблема, конечно, если я захочу это сделать, мне нужно будет выбрать, пока программа не будет действительной. Это нормально, за исключением того, что, изменяя системные часы, вы можете легко обойти систему.

Теперь я хотел бы услышать, что люди обычно делают для чего-то подобного. Я пробовал несколько подходов, например, связался с сайтом, чтобы указать временную метку и сравнить ее, что было бы хорошо, если бы это не всегда увеличивало время запуска программы более чем на 9000 и тот факт, что люди не смогут использовать его, если они не подключены к Интернету.

Любые предложения приветствуются.

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Это не 100% гарантированное решение, но оно приведет вас туда

Вам нужно будет реализовать эти вещи в файле конфигурации (зачем нужен файл конфигурации, потому что, если пользователь удалит его, ваше приложение не запустится). Также зашифруйте все следующие данные.

  • Сохраните дату и время запуска приложения.
  • Сохранение точного времени, в течение которого было запущено приложение.

Тем самым вы можете избежать:

  • Если пользователь изменит время компьютера, вы узнаете, что, поскольку ваше приложение регистрирует дату и время, оно может перекрываться с более ранним временем, скажем, пользователь запускал приложение 6-го и 10-го числа месяца, а затем он изменяет дату на В-седьмых, вы узнаете об этом.
  • Во-вторых, пользователь может изменить дату каждого прогона на одну дату, в этом случае вам поможет общая продолжительность. Скажите, что пользователь устанавливает дату 1-го числа месяца каждый раз, когда запускает ее, в этом случае он может использовать приложение только в течение 24 часов.

Другие опции, такие как

  • Проверка времени с внешнего сервера ( Ошибка : требуется доступ к Интернету)
  • Время хранения в реестре ( Ошибка : пользователь может легко манипулировать реестром)

Надеюсь, это поможет вам.

0 голосов
/ 02 февраля 2012

Если ваше программное обеспечение может получить доступ к некоторому сетевому ресурсу на каком-либо локальном сервере / nas, вы можете создать новый файл на этом сетевом ресурсе, и для этого файла будет установлено время создания с использованием часов сервера / nas, так что вы можете сравните время, установленное на сервере / NAS, со временем на локальном компьютере.

Или вы также можете сохранить где-нибудь (файл, в реестре, в БД) последнее время последнего выполнения, и если часы возвращаются во времени, вы можете заблокировать приложение и потребовать дополнительной помощи: - )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...