Я работаю над Механизм лицензирования программного обеспечения Windows Cative C ++ для настольных ПК и я стараюсь быть максимально ненавязчивым. Идея, лежащая в основе этого, проста, и я пытаюсь удержать людей от того, чтобы делиться ею, в первую очередь, путем добавления их личной информации в программное обеспечение, а также блокировки ее на множестве целевых машин.
Как работает лицензирование:
Когда кто-то загружает программное обеспечение с моего сервера, к нему добавляется новый персонализированный раздел PE, содержащий личную информацию и хэш-ключ, который защищает его от подделки. Хеш проверяется по встроенному открытому ключу и генерируется закрытым ключом на сервере.
Когда инструмент запускается, он проверяет себя по ключу хеш-функции, затем вызывает home и запускается только в случае успешного выполнения локальных тестов и получения зеленого света из дома. Поскольку эти инструменты являются интернет-инструментами, которые требуют постоянного подключения к Интернету, звонки домой почти всегда возможны, если они не заблокированы через DNS. (но я включу в инструменты собственный клиент DNS, чтобы избежать Windows при разрешении звонка домой).
Вопрос:
Мое главное беспокойство — возможно ли, чтобы антивирусное программное обеспечение хмурилось на мой пользовательский раздел, встроенный в структуру PE? Я не говорю о свободных данных, добавленных в конец файла. Я встраиваю новый раздел и переписываю PE.
Я провел несколько тестов, и у меня не было проблем, но мне интересно, есть ли у других опыт с такими вещами.
Это распространенное заблуждение, что подписи предотвращают фальсификацию. Они не мешают этому, они только раскрывают это.
Если пользователь является соучастником (он намеревается использовать взломанную / неправильно лицензированную версию), то если он обнаружит, что вмешательство не поможет, вы никуда не денетесь.
Лучше всего не использовать уникальный отпечаток пальца, чтобы заблокировать работу программного обеспечения, что, безусловно, приведет только к версии Warez, в которой пропущены проверки лицензии, а просто собрать данные по нескольким установкам, которые могут быть использованы при преследовании в судебном порядке. гражданский иск за несанкционированное копирование.
Я вижу несколько красных флажков:
Ваше приложение не подписано Authenticode, или (что еще хуже) ваш новый раздел аннулировал подпись Authenticode. Решение: не изобретайте велосипед, используйте механизм Authenticode вместо своего.
Поскольку ваш исполняемый файл уникален, он не может быть внесен в белый список.
Ваше приложение содержит собственный DNS-клиент. Это будет замечено программным обеспечением AV.
Сам пользовательский раздел PE не будет слишком плохим, но почему такой сложный? RT_RCDATA
ресурс кажется более подходящим.