Есть ли в операционной системе, или в железе ПК сущность, которую можно прочесть или необратимо изменить ее состояние, но вернуть его обратно — нет?
Собственно, вопрос для системы активации софта. При деактивации нужно зафиксировать этот факт так, чтобы хитрый пользователь не смог откатить его обратно. Потом этот изменяемый, но неоткатываемый фактор можно включить в состав hardware id.
Когда-то во времена динозавров была такая защита от копирования которая писала "сбойный" кластер на дискету. Который считывался случайным образом. А при копировании дискеты естественно переписывался только каким-то однозначным - или 0 или 1. Это так, для затравки...
Это невозможно. Единственная условно изменяемая часть - это BIOS. Но туда лезть себе дороже.
Можно залезть в нулевые сектора диска, но полное форматирование поможет.
Обычно вычисляют уникальный хэш и привязывают онлайн.
В общем случае, конечно, да. Я это понимаю и серебряную пулю не ищу. Достаточно защиты от кулхацкера, который умеет пользоваться утилитами SysInternals, но дальше не полезет.
Сейчас думаю о комбинации нескольких факторов, замена одного их которых не поможет.
Все зависит от хитрости пользователя.
Варианты - реестр, использования ntfs-потоков.
Но привязка к железу - не очень хорошая идея, разве что вы с софтом свой хардварный ключ будете поставлять.
Онлайн активация - самое удобное что есть, если грамотно реализовать.
poisons, с какой стати корпоративные откажутся от онлайн поддержки?
Наоборот - активация, подписка на обновления - так живет 90% коммерческого корпоративного софта, начиная от разных баз и бухучета, и заканчивая всякими антивирусами и так далее.
Корпоративная онлайн активация может быть более продвинутая, например установка собственного лицензионного сервера внутри компании, который разово активируется и позволяет лицензировать компы в локалке.
онлайн активация - это при установке софта, программа детектит локальное железо, генерирует код содержащий все что она надетектит в криптованном виде и шлет его на сайт, получает уникальный код, который активирует прогу именно на этом железе и все.
Дальше - при смене железки или при переустановке - нужно будет еще раз залезть и активировать онлайн.
Реализовать можно - либо скачивая dll, без которого прога не живет, и в которой этот сгенерированный уникальный код (на сайте быстро компилится dll под конкретную машину). Тогда на другой машине эта dll бесполезна и лазить каждый раз в инет не нужно - только при новой установке или смене железа.
При этом на сайте есть статистика кто чего сколько раз почему.
100% согласен. И поскольку стоит задача не защититься от взломщиков, а, скажем, просто дать понять пользователю, что все чуточку сложнее, чем 2 пальца об асфальт, то видимо мне не стоит париться над сабжевым вопросом, а сделать проверку по 2-3 несвязанным признакам, и этого будет достаточно.
Спасибо за совет, но я не понимаю, как он соотносится с моим вопросом. Да, и препятствие к использованию вашего совета, я полагаю, вы сможете придумать также быстро, как дали его, не правда ли?
Андрей Завьялов, а имеет он прямое отношение, т.к. на компьютере нет такой штуки, которую один человек может менять, а другой - нет.
Если бы в вопросе не было