Хочу чтобы программа которую я написал запускалась только на компьютере человека, которому она досталась, 100% вариант понимаю что сделать невозможно, но чтобы прога была как нить зависима от железа... Поскажите как лучше сделать...
readme Как именно реализовать привязку к железу? у кого есть опыт и не жалко подсказать Вот выбрал более-менее нормальный способ - привязывать программу к серийному номеру винта или материнки ну или создать гуид... но вот же вопрос сразу возхникает... надо же записать его в сам ехе ? ...как Вот нашел отличную статью по теме http://www.izcity.com/data/security/article944.htm но все ракно не пойму как записать в мой ехе этот самый ключ... или можно как то проще?
ну оставь в любой секции буфер под это дело, а программа должна проверять и сравнивать его, или какойнибудь хэш от этих данных запиши в какую нибудь crc поле pe файла в option header и сравнивай его потом
тебе надо один раз записать данные о железе в exe файл на диске и потом при запуске она должна эти данные проверять
как вариант можно предварительно получить некий хеш от данных аппаратной конфигурации машины, а потом закриптовать прогу криптором с этим ключом. И привязываться не обязательно к винту - например, у многих сейчас есть сетевухи встроенные на материнках - если так, можно оттуда взять PCI Vital data - и строить хеш на нем. Т.к. диски и количество памяти - обычно подвергаются апгрейду гораздо чаще, чем материнка. В частности, у очень распространенных реалтековских чипов такая инфа достается на раз через конфиг спейс. (даташиты доступны на их сайте).
Да вот думаю... я допустим буду давать программу в архиве, юзер запустит прогу, она сама себя пропатчит, но та, что в архиве-то... она то не пропатчена и ее могут распространять... Может есть вариант серийника+зависимость от железа?
Да вот думаю... я допустим буду давать программу в архиве, юзер запустит прогу, она сама себя пропатчит, но та, что в архиве-то... она то не пропатчена и ее могут распространять... Может есть вариант серийника+зависимость от железа?
тебе очевидно на узкий круг пользователей надо это всё сделать, кстати вроде этот тип защит был реаризован а пакере орион но там эти действия на компе где он запускаться должно производиться должны наверна
тебе очевидно на узкий круг пользователей надо это всё сделать, кстати вроде этот тип защит был реаризован а пакере орион но там эти действия на компе где он запускаться должно производиться должны наверна
Имхо привязка к железу всегда легко отламывается и доставляет легальным пользователям больше неприятностей чем нелегальным. Для более надежной защиты лучше использовть аппаратные ключи либо StarForce и привязку к CD.
CD возможна если есть налаженный выпуск или хотябы ты должен в живую общаться с этим человеком ну чтобы передать ему диск, к примеру через интернет его непошлёшь же) разве тока почтой, тоже сваи минусы
Варианты с СД отпадают. В общем надо по любому сделать чтоб пользователи не распространяли мой софт. Эта моя главная задача. Когда найду выход - обязательно сообщу что именно предпринял. Вот уже даже мысли поскакивают насчет привязки к сайту...
А можно прогу на флешку записать? Тогда просто считываешь CreateFile() информацию о производителе и т.д. На ее основе генерируешь ключ и "подставляешь" в программу. То есть получается что-то наподобие "продал прогу вместе с жеским диском". Естественно, можно узнать генерируемый серийник. Но тут уже надо на боязни пользователей играть. Допустим, можешь соорудить простенькую программу хранения важных документов в зашифрованном виде. Если "подсядет", вряд ли кому-нибудь флешку отдаст. Вот уже даже мысли поскакивают насчет привязки к сайту... А если весь код будет выполняться на удаленном сервере? Не прошел авторизацию -- программа работает, но с каждым днем все нестабильнее, изредка просит обратится к разработчику... А через два-три месяца жизнь человека превращается в кошмар. Обычно за квартал прогу успеют взломать, размножить, распродать. Потом начнется самое веселое. Главное, сделать незаметно. P.S.: Что за прога хоть?
apple Да я ж писал что поставлятся она будет в инсталлах или в рар архивах, потому у юзера будет всегда чистая версия в запасе... вот как бы сделать чтобы после запуска она привязывалась к этому юзеру. и та что он запустил, и та что в архиве у него лежит... Видимо с сайтом всетаки придется связать. А что если так сделать! Только что мысль в голову пришла! Будет регистрация на сайте, логин и пароль выдаю юзеру я, После того как юзер залогинится я делаю хеш в кукис с его настройками браузера, винды и т.д. Затем пишу хещ в ехе и все! привязка готова! Потрет кукис - его проблемы!
Пользователь может сменить браузер и-или поставить апдейт, сервис-пак или прочее - настройки изменятся. Есть у меня один вариант (подразумевает недорогую аппаратную часть). Если интересно - стучи: 192-294-138
Самый лучший вариант - использование общедоступных ключей при распространении программ. У меня где-то был образцовый пример, как это делается в принципе - все достаточно круто. Мне повезло, что я смог найти приватный ключ - ключ был короткий. Если найду, могу поместить сюда, но точно не обещаю. Второй хороший вариант - ключи, лучше всего с зашифрованием кода проги. Их сейчас много. На моей памяти остался Hardlock, достаточно круто!