2011-01-05 8 views
4

Я пишу свою собственную проверку/защиту серийного номера для программного обеспечения, которое я написал.C# серийный номер, встроенный в программу

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

Я действительно не хочу создавать отдельный файл лицензии. Есть ли способ внедрить это в саму программу? Или реестр является единственным другим вариантом (помимо онлайн-проверки и т. Д.)

ответ

6

Вы не должны пытаться самостоятельно отредактировать программу - она ​​сломает подписи/сильное имя, файл exe/dll почти наверняка быть заблокированным, и даже если вы теневое копирование: у многих пользователей не будет разрешение, чтобы отредактировать его в программных файлах (или как один раз щелкнуть).

Что-то внешнее, такое как файл лицензии или параметр реестра, кажется подходящим (если вы не хотите создавать приложение на своем сервере для каждого клиента).

0

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

2

Есть ли способ встроить его в саму программу?

Если вы намекаете на изменения сборки, то это возможно *, Вы должны были бы иметь два узла - тот, который в настоящее время исполняющий и тот, который вы модифицирующих - потому что выполнение сборки будет заблокирована файловой системы. И вам нужно зарезервировать достаточно места для хранения любого нового значения, которое вы намерены ввести.

* Чтобы доказать это самому себе, я создал небольшой исполняемый файл, который просто записывает значение строки и использует шестнадцатеричный редактор для изменения значения строки.

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

Хранение регистрационных данных в реестре, вероятно, намного проще.

2

Лично я всегда создаю уникальный ключ из аппаратного обеспечения и хранил его в реестре.

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

http://www.vcskicks.com/hardware_id.php

+0

Просто читать О.П. снова и понял, что я ответил на все это не так, я бы еще пойти с параметром реестра над вложением. – nik0lias

Смежные вопросы