Поставили мне задание — сделать в программе регистрацию, причем такую, чтобы она была обязательно с привязкой к машине (железу) или текущей ОС. Т.е. чтобы на другой машине нельзя было запустить.
Есть разные мысли, например генерировать некий ключ на основании серийного номера чего-нибудь... Мне интересно узнать мнение людей, опытных в разработке подобных систем.
wrote in message news:1198040@news.rsdn.ru... > Добрый день всем. >Есть разные мысли, например генерировать некий ключ на основании серийного номера чего-нибудь...
Дык так и делают. Причем только две вещи можно читать без особоых проблем: серийный номер тома (GetVolumeInformation), но его можно сменить. И МАК адрес сетевой платы (который опять же можно сменить). Можно AsProtect взять, там это уже все реализовано.
Здравствуйте, <Аноним>, Вы писали:
А>Добрый день всем.
А>Поставили мне задание — сделать в программе регистрацию, причем такую, чтобы она была обязательно с привязкой к машине (железу) или текущей ОС. Т.е. чтобы на другой машине нельзя было запустить.
А>Есть разные мысли, например генерировать некий ключ на основании серийного номера чего-нибудь... Мне интересно узнать мнение людей, опытных в разработке подобных систем.
А>Спаисбо.
Это все хорошо, но придется делать еще 1 прогу, и так ее защищать, чтобы никто не взломал.
А делать она будет следующие: вытягивать серийники из того, что вероятно в течение 5-12 месяцев меняться не будет или то, что самое основное — это мать, проц и т.д.
Потом генерировать ключики (фантазия тут может себя проявить )
Потом отправлять ключик продавцу программы.
Потом ключик вшивать в прогу...
А потом только прогу отправлять...
Схема очень сложная для shareware, я бы не хотел бы заниматься таким геморроем при покупке программы, только разве что она ну уж, очень нужна. А такое бывает очень редко и можно потерять 90 процентов покупателей или вообще их отпугнуть.
Вышеприведенная схема работала, когда я и мой друг делали прогу, которая позволяла читать информацию на диске только на определенном компьютере.
Это не был коммерческий проект, так проект за оценку по дискретке...
Здравствуйте, wellwell, Вы писали:
W>Дык так и делают. Причем только две вещи можно читать без особоых проблем: серийный номер тома (GetVolumeInformation), но его можно сменить. И МАК адрес сетевой платы (который опять же можно сменить).
если закатать рукава и в одну из рук взять гугль — то вполне можно докопаться до CPUID, биоса и серийного номера HDD
W>Можно AsProtect взять, там это уже все реализовано.
"Relayer" <34606@users.rsdn.ru> wrote in message news:1199212@news.rsdn.ru... > если закатать рукава и в одну из рук взять гугль — то вполне можно докопаться до CPUID, биоса и серийного номера HDD
Можно, только многие CPU не имеют ID, многие биосы хранят свой номер не там где обычно. Серийный номер HDD — нормально прокатит, правда его получение не совсем тривиально.
Здравствуйте, wellwell, Вы писали:
W>Можно, только многие CPU не имеют ID, многие биосы хранят свой номер не там где обычно. W> Серийный номер HDD — нормально прокатит, правда его получение не совсем тривиально.
И тот не везде установлен
Здравствуйте, Relayer, Вы писали:
W>>Можно AsProtect взять, там это уже все реализовано. R>или EXECryptor
А чем EXECryptor отличается от вашего же HardKey ? Чего-то я совсем не догоняю...
Re: Регистрационная информация
От:
Аноним
Дата:
01.06.05 16:14
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Добрый день всем.
А>Поставили мне задание — сделать в программе регистрацию, причем такую, чтобы она была обязательно с привязкой к машине (железу) или текущей ОС. Т.е. чтобы на другой машине нельзя было запустить.
А>Есть разные мысли, например генерировать некий ключ на основании серийного номера чего-нибудь... Мне интересно узнать мнение людей, опытных в разработке подобных систем.
А>Спаисбо.
Спасибо всем за комментарии. Проясню ситуацию: разрабатываемая система не Shareware, а проект с достачно ерьезными целями. Наличие сетевой карты на компьютере заказчика очень вероятно (99%) но она может и отсутствовать. Привязка к железу должна быть абсолютной и работать на _любой_ машине с _любой_ виндой.
Из всего, что написано, я сделал вывод, что какого-то номера, который неизменен и наличиствует в любой системе нет. Надеюсь, я не прав, потому что связываться с ключами, вставляемыми в порт компа мне не хочется.
Здравствуйте, lozzy, Вы писали:
L>А чем EXECryptor отличается от вашего же HardKey ? Чего-то я совсем не догоняю...
HardKey — это только управление серийниками. верификация серийника в исходниках соотв компилируется и под MSVC и под gcc
а основная задача EXECryptor"а — защита кода от реверсинга. короткие ключи в нем тоже есть в качестве бесплатного приложения
Здравствуйте, Аноним, Вы писали:
А>Из всего, что написано, я сделал вывод, что какого-то номера, который неизменен и наличиствует в любой системе нет. Надеюсь, я не прав, потому что связываться с ключами, вставляемыми в порт компа мне не хочется. А>Что посоветуете?
HardwareID = Hash(CPUID & BIOSID & HDDID & ...)
чтото одно обязательно есть. а если чегото нет — просто соотв функция должна возвращать пустую строку. от всего этого считаем хеш и получаем ИД.
Re[5]: Регистрационная информация
От:
Аноним
Дата:
01.06.05 21:56
Оценка:
Здравствуйте, Relayer, Вы писали:
R>Здравствуйте, lozzy, Вы писали:
L>>А чем EXECryptor отличается от вашего же HardKey ? Чего-то я совсем не догоняю...
R>HardKey — это только управление серийниками. верификация серийника в исходниках соотв компилируется и под MSVC и под gcc R>а основная задача EXECryptor"а — защита кода от реверсинга. короткие ключи в нем тоже есть в качестве бесплатного приложения
Да, ребята. Вам стоит поработать над сайтом в плане улучшения его контента После его краткого посещения я почему-то подумал что это две разных системы защиты
Re[3]: Регистрационная информация
От:
Аноним
Дата:
02.06.05 05:23
Оценка:
Здравствуйте, Relayer, Вы писали:
R>Здравствуйте, Аноним, Вы писали:
А>>Из всего, что написано, я сделал вывод, что какого-то номера, который неизменен и наличиствует в любой системе нет. Надеюсь, я не прав, потому что связываться с ключами, вставляемыми в порт компа мне не хочется. А>>Что посоветуете?
R>HardwareID = Hash(CPUID & BIOSID & HDDID & ...) R>чтото одно обязательно есть. а если чегото нет — просто соотв функция должна возвращать пустую строку. от всего этого считаем хеш и получаем ИД.
Хорошая мысль. Спасибо. Я даже как-то не подумал... Позвольте еще вопрос, только не отправляйте меня в поиск по форумам, я и так его уже замучал и ничего не нашел. Как эти ID получить??? Понимаю что здесь это оффтопик, но все-таки, подскажите, кто может... можно на мыло: