Скрытие секрета в реестре Windows - PullRequest
3 голосов
/ 12 августа 2011

Я знаю, что реестр - это не лучшее место, где можно что-то скрыть.

Сейчас я пишу лицензионное программное обеспечение, которое требует сохранения информации об использовании пробной версии, например дата первой установки в реестре и т. Д.

Какие кусты в реестре Windows соответствуют этим критериям:

  1. Пользователи не могут обнаружить их случайно.
  2. Значение может быть общим для пользователей Windows.
  3. Не испортил Windows и утилита очистки реестра не считает это значение мусором.
  4. Если можно, он работает без прав администратора в Windows Vista и Windows 7

Редактировать: я исключил элементы № 4, потому что это невозможно с элементом № 2, основываясь на ответах Дэвида Хеффернана

Ответы [ 3 ]

9 голосов
/ 12 августа 2011

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

Если вы готовы отбросить условие 4, вам нужно сохранить его в HKLM, чтобы оно стало общим. Очевидное место - HKLM\Software\YourCompanyName\YourProductName. Естественно, вы бы зашифровали данные, чтобы избежать подделки. Как только вы это сделаете, вам будет все равно, обнаружат ли ваши пользователи это.

1 голос
/ 07 ноября 2011

При установке вы можете изменить права доступа в HKLM, чтобы у всех пользователей был доступ на запись.

Если вы выберете место, отличное от HKLM \ SOFTWARE \ Your Company Name \ что-то, чем вы являетесьглупо.

1 голос
/ 12 августа 2011

От чего ты пытаешься защищаться? Похоже, вы прилагаете много усилий для того, чтобы «не позволяли людям изменять свои системные часы, чтобы продлить пробную версию», но вовсе не для того, чтобы «не позволяли людям редактировать ключ реестра, чтобы продлить свою пробную версию» или «не надевать». не позволяйте людям обмениваться ключами реестра между машинами, чтобы превратить пробные версии в полные ключи бесплатно ". Я на самом деле думаю, что это гораздо более вероятно. Любое программное обеспечение, которое кричало мне за изменение времени на моем собственном компьютере, будет удалено в спешке.

Я рекомендую вам не пытаться делать это самостоятельно. Существуют библиотеки лицензий, которые вы можете использовать, в которых рассматриваются различные способы, которыми люди пытаются обмануть программное обеспечение. Но если вам нужно, потому что вы хотите попробовать это, найдите время, чтобы отличить то, что происходит при установке, что может потребовать прав администратора, и то, что происходит во время работы и проверки, чего не следует делать. Приложение, которое должно запускаться с повышенными правами ни по какой другой причине, кроме как раз в минуту записывать информацию о лицензии в HKLM, также будет удалено с моего компьютера в одно мгновение.

Итак, при установке напишите что-нибудь неясное / зашифрованное в ключ реестра в HKLM. Сделайте это чем-то бесполезным для копирования с компьютера на компьютер, пока вы на нем, сочетая, скажем, дату, адрес электронной почты и некоторую другую информацию. Во время выполнения ваш код должен смотреть частично на неизменную запись или записи реестра, а частично на что-то другое, что может легко измениться, например, файл в AppData, ключ HKCU или текущую дату, чтобы решить, нормально ли для запуска приложения , (Во время выполнения, если ключ HKLM отсутствует или не содержит контрольной суммы или чего-либо еще, откажитесь от запуска и попросите переустановить. При переустановке может беспокоиться, пытается ли человек получить бесконечные бесплатные пробные версии.) Сосредоточьтесь на основных способах, которыми люди пытаются обманывать схемы лицензирования, а также быть полезным приложением. Настаивать на повышении или предотвращении общего использования машины не удается с точки зрения удобства использования.

...