Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: Peter, DEMBEL, YURIY  
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Получение информации о устройствах ПК
Получение информации о устройствах ПК
Snow_IrbisДата: Сб, 23 Октября 2010, 23:29 | Сообщение # 61
Участник
Quote (DEMBEL)
Но кэп всегда настрёме :D

За что большое спасибо :)

Quote (Jivchik)
Ну а если такой вариант.

Получаем CPU_ID + активация по мылу. CPU_ID и Мыло перевести скажем в цифры, сложить/умножить = сумма - она же ID. При запуске проверяется сумма. Если все нормально, то загружается программа.

А так если CPU_ID и Мыло не то, то сумма будет неверна. Если переписать на другой комп, то там будет CPU_ID другое ... ну и т.п. Тока вопрос - где хранить такое значение, да еще и каждый раз к нему при загрузке обращаться.

Так можно и самому запутаться , на данный момент пока ограничусь привязкой к МАКу , на данный момент мне ее достаточно :)

Quote (Jivchik)
2DEMBEL

Читал тут статейку:
При активации снимается "след" с железа компьютера. Скажем 5 параметров. Биос, Мать, Хард, Сетевуха, Видюха ... и установлены проверки. Скажем если 2 из 5 совпадают, то работает прога, меньше нет. И установлен временной апгрейд снятия "следа", т.е. скажем вы хард поменяли, через какое-то время он станет родным для программы (т.е. понятно если комп сразу весь поменяли, то уж извините). Ну и естественно привязка по логину к серваку и обмен данными с ним.

Так Винда в оригинале и делает :)

Сообщение отредактировано
Snow_Irbis - Сб, 23 Октября 2010, 23:30
 
Сообщение
Quote (DEMBEL)
Но кэп всегда настрёме :D

За что большое спасибо :)

Quote (Jivchik)
Ну а если такой вариант.

Получаем CPU_ID + активация по мылу. CPU_ID и Мыло перевести скажем в цифры, сложить/умножить = сумма - она же ID. При запуске проверяется сумма. Если все нормально, то загружается программа.

А так если CPU_ID и Мыло не то, то сумма будет неверна. Если переписать на другой комп, то там будет CPU_ID другое ... ну и т.п. Тока вопрос - где хранить такое значение, да еще и каждый раз к нему при загрузке обращаться.

Так можно и самому запутаться , на данный момент пока ограничусь привязкой к МАКу , на данный момент мне ее достаточно :)

Quote (Jivchik)
2DEMBEL

Читал тут статейку:
При активации снимается "след" с железа компьютера. Скажем 5 параметров. Биос, Мать, Хард, Сетевуха, Видюха ... и установлены проверки. Скажем если 2 из 5 совпадают, то работает прога, меньше нет. И установлен временной апгрейд снятия "следа", т.е. скажем вы хард поменяли, через какое-то время он станет родным для программы (т.е. понятно если комп сразу весь поменяли, то уж извините). Ну и естественно привязка по логину к серваку и обмен данными с ним.

Так Винда в оригинале и делает :)


Автор - Snow_Irbis
Дата добавления - 23 Октября 2010 в 23:29
JivchikДата: Сб, 23 Октября 2010, 23:37 | Сообщение # 62
Любопытный
Quote (Snow_Irbis)
Так Винда в оригинале и делает

буду знать.

 
Сообщение
Quote (Snow_Irbis)
Так Винда в оригинале и делает

буду знать.


Автор - Jivchik
Дата добавления - 23 Октября 2010 в 23:37
DEMBELДата: Сб, 23 Октября 2010, 23:45 | Сообщение # 63
Наш дизайнер
Quote (Jivchik)
Извиняюсь, если я написал бред.

ну почему бред, так и надо. как-то я делал такую штуку, когда автор рассылал ключи активации программы по мылу. база пользователей у него была просто на локалке в Excel. юзер присылал ему (неважно с какого адреса) сгенерированный в программе ID системы на основе CpuID, имени пользователя и адреса его почты куда прислать ключ. Автор на своей машине раскодировал ID, получал адрес почты, генерировал ключ активации и отправлял по полученному адресу. Основные моменты при этом:
- Даже если придет запрос на активацию тем же ID, но с чужой машины, ответный ключ все равно отправится по зашитому в ID адресу почты. Да и в ключ заодно зашита проверки CpuID. Активировать ключом другую тачку не выйдет. При активации прога проверяет не только CpuID по ключу, но и просит ввести имя и адрес почты. Эти 3 параметра можно получить как из ID машины, так и из ключа активации. Так что случайные совпадения cpuid исключены.
- Автор программы пробивал по базе соответствия имени пользователя/почты/ID системы, в случае реактивации программы или замены оборудования. Ключ всегда высылается на указанное юзером мыло при генерации ID системы.

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


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (Jivchik)
Извиняюсь, если я написал бред.

ну почему бред, так и надо. как-то я делал такую штуку, когда автор рассылал ключи активации программы по мылу. база пользователей у него была просто на локалке в Excel. юзер присылал ему (неважно с какого адреса) сгенерированный в программе ID системы на основе CpuID, имени пользователя и адреса его почты куда прислать ключ. Автор на своей машине раскодировал ID, получал адрес почты, генерировал ключ активации и отправлял по полученному адресу. Основные моменты при этом:
- Даже если придет запрос на активацию тем же ID, но с чужой машины, ответный ключ все равно отправится по зашитому в ID адресу почты. Да и в ключ заодно зашита проверки CpuID. Активировать ключом другую тачку не выйдет. При активации прога проверяет не только CpuID по ключу, но и просит ввести имя и адрес почты. Эти 3 параметра можно получить как из ID машины, так и из ключа активации. Так что случайные совпадения cpuid исключены.
- Автор программы пробивал по базе соответствия имени пользователя/почты/ID системы, в случае реактивации программы или замены оборудования. Ключ всегда высылается на указанное юзером мыло при генерации ID системы.

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


Автор - DEMBEL
Дата добавления - 23 Октября 2010 в 23:45
JivchikДата: Сб, 23 Октября 2010, 23:53 | Сообщение # 64
Любопытный
DEMBEL,
о пасибо. Значит пока на этом и остановлюсь. Только конечно мозг надо по напрягать, всё это по кодировать, да передать, да еще на сайте активировать ... эх.

Добавлено (23 Октябрь 2010, 23:53)
---------------------------------------------
DEMBEL, тока получается, что ключ-то полюбэ где-то должен храниться на машине пользователя. Или если его хорошо шифрануть, то можно и в простом текстовом файлике - лицензия.txt ?

 
СообщениеDEMBEL,
о пасибо. Значит пока на этом и остановлюсь. Только конечно мозг надо по напрягать, всё это по кодировать, да передать, да еще на сайте активировать ... эх.

Добавлено (23 Октябрь 2010, 23:53)
---------------------------------------------
DEMBEL, тока получается, что ключ-то полюбэ где-то должен храниться на машине пользователя. Или если его хорошо шифрануть, то можно и в простом текстовом файлике - лицензия.txt ?


Автор - Jivchik
Дата добавления - 23 Октября 2010 в 23:53
DEMBELДата: Вс, 24 Октября 2010, 00:06 | Сообщение # 65
Наш дизайнер
Quote (Jivchik)
что ключ-то полюбэ где-то должен храниться на машине пользователя

да, просто при удачной активации (при этом может зашиться кол-во дней), в реестр пишется шифрованная строка. При старте прога расшифрует строку и понимает, активирована она или нет, можно запускаться или нет. Проверяются Cpuid, так что скопировать строку реестра на др. тачку не пойдет.
Quote (Jivchik)
то можно и в простом текстовом файлике - лицензия.txt ?
файлик удалить, реестр почистить, и прогу снова можно активировать. но это только актуально при ограниченном периоде лицензии. тут надо еще методы применять, читайте сеть...

Добавлено (24 Октябрь 2010, 00:06)
---------------------------------------------

Quote (Jivchik)
Только конечно мозг надо по напрягать, всё это по кодировать, да передать, да еще на сайте активировать ... эх.
а что там напрягать? простого математического алгоритма собственного изготовления по генерации/раскодирования ключа и данных достаточно.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (Jivchik)
что ключ-то полюбэ где-то должен храниться на машине пользователя

да, просто при удачной активации (при этом может зашиться кол-во дней), в реестр пишется шифрованная строка. При старте прога расшифрует строку и понимает, активирована она или нет, можно запускаться или нет. Проверяются Cpuid, так что скопировать строку реестра на др. тачку не пойдет.
Quote (Jivchik)
то можно и в простом текстовом файлике - лицензия.txt ?
файлик удалить, реестр почистить, и прогу снова можно активировать. но это только актуально при ограниченном периоде лицензии. тут надо еще методы применять, читайте сеть...

Добавлено (24 Октябрь 2010, 00:06)
---------------------------------------------

Quote (Jivchik)
Только конечно мозг надо по напрягать, всё это по кодировать, да передать, да еще на сайте активировать ... эх.
а что там напрягать? простого математического алгоритма собственного изготовления по генерации/раскодирования ключа и данных достаточно.

Автор - DEMBEL
Дата добавления - 24 Октября 2010 в 00:06
JivchikДата: Вс, 24 Октября 2010, 00:10 | Сообщение # 66
Любопытный
DEMBEL, да, пасиб.
Седня весь день потратил на науку. Буду курить тему. Пасибо еще раз.
 
СообщениеDEMBEL, да, пасиб.
Седня весь день потратил на науку. Буду курить тему. Пасибо еще раз.

Автор - Jivchik
Дата добавления - 24 Октября 2010 в 00:10
DEMBELДата: Вс, 24 Октября 2010, 00:28 | Сообщение # 67
Наш дизайнер
кстати если хотите делать триальный период по кол-ву запусков или кол-ву дней, советую сразу забыть эту затею. Любой триал легко сбрасывается, отслеживается софтом любая активность проги даже неопытным пользователем (куда что какие метки пишутся, реестр, файлы). Да и вы сами видите на примере известных программ как легко сбрасывается триал по его истечению. Так что лучше делайте урезанные демо-версии программ, а если делаете активацию, то насовсем. Тогда степеней свободы принятия однозначных решений алгоритмом защиты проги станет гораздо меньше, либо активировано либо нет, в завис-ти от этого разблокируйте доп. функционал проги в отличие от демо. В этом случае хотя бы ограничения зашиты в самой проге, а не лежат где-то в системе в виде триальной метки, которую легко обнаружить и удалить.

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениекстати если хотите делать триальный период по кол-ву запусков или кол-ву дней, советую сразу забыть эту затею. Любой триал легко сбрасывается, отслеживается софтом любая активность проги даже неопытным пользователем (куда что какие метки пишутся, реестр, файлы). Да и вы сами видите на примере известных программ как легко сбрасывается триал по его истечению. Так что лучше делайте урезанные демо-версии программ, а если делаете активацию, то насовсем. Тогда степеней свободы принятия однозначных решений алгоритмом защиты проги станет гораздо меньше, либо активировано либо нет, в завис-ти от этого разблокируйте доп. функционал проги в отличие от демо. В этом случае хотя бы ограничения зашиты в самой проге, а не лежат где-то в системе в виде триальной метки, которую легко обнаружить и удалить.

Автор - DEMBEL
Дата добавления - 24 Октября 2010 в 00:28
JivchikДата: Вс, 24 Октября 2010, 10:58 | Сообщение # 68
Любопытный
DEMBEL, триал я не хочу, если тока демку с мимнимум возможностей.

А есть ссылочка где про кодирование доступно написано? Для кодировки ключа.

Quote (DEMBEL)
скопировать строку реестра

И тока сегодня мой мозг посетила мысль про реестр. Что сумму можно туда поместить. :D
 
СообщениеDEMBEL, триал я не хочу, если тока демку с мимнимум возможностей.

А есть ссылочка где про кодирование доступно написано? Для кодировки ключа.

Quote (DEMBEL)
скопировать строку реестра

И тока сегодня мой мозг посетила мысль про реестр. Что сумму можно туда поместить. :D

Автор - Jivchik
Дата добавления - 24 Октября 2010 в 10:58
DEMBELДата: Вс, 24 Октября 2010, 11:11 | Сообщение # 69
Наш дизайнер
Quote (Jivchik)
Для кодировки ключа.

а в чем вопрос собсно?
1. Если как сгенерировать ключ, то как я уже сказал, выдумывай собственный математический алгоритм. Переводи символы в числовое (dec/hex)-выражение и далее переставления/подмены/математика. Делай как придумаешь. Жаль нб не умеет возвращать код символа, в ммб есть такой оператор. Но это поправимо. Пример генерации (для ммб) ключа на основе строки (правда не совсем то, но логику и алгоритм демонстрирует) можно посмотреть тут.

2. Если вопрос как зашифровать/расшифровать строку, то см. функции Cipher в этом наборе. Пришла пожалуй пора его обновить, накопилось...

В принципе, можно только шифровать... Если не требуется какое-то структурированное представление данных, но и это условно.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (Jivchik)
Для кодировки ключа.

а в чем вопрос собсно?
1. Если как сгенерировать ключ, то как я уже сказал, выдумывай собственный математический алгоритм. Переводи символы в числовое (dec/hex)-выражение и далее переставления/подмены/математика. Делай как придумаешь. Жаль нб не умеет возвращать код символа, в ммб есть такой оператор. Но это поправимо. Пример генерации (для ммб) ключа на основе строки (правда не совсем то, но логику и алгоритм демонстрирует) можно посмотреть тут.

2. Если вопрос как зашифровать/расшифровать строку, то см. функции Cipher в этом наборе. Пришла пожалуй пора его обновить, накопилось...

В принципе, можно только шифровать... Если не требуется какое-то структурированное представление данных, но и это условно.


Автор - DEMBEL
Дата добавления - 24 Октября 2010 в 11:11
СергейДата: Вс, 24 Октября 2010, 11:17 | Сообщение # 70
Необукер
а если данные CpuID+логин+мыло объеденить в одну строку и кодировать в мд5, а потом сверять эту строку?!
 
Сообщениеа если данные CpuID+логин+мыло объеденить в одну строку и кодировать в мд5, а потом сверять эту строку?!

Автор - Сергей
Дата добавления - 24 Октября 2010 в 11:17
JivchikДата: Вс, 24 Октября 2010, 11:21 | Сообщение # 71
Любопытный
Спасибо, DEMBEL. Пошел читать ...

Добавлено (24 Октябрь 2010, 11:21)
---------------------------------------------
Сергей, ну да. Вот в этом и вопрос. Поэтому и спросил про кодирование.

 
СообщениеСпасибо, DEMBEL. Пошел читать ...

Добавлено (24 Октябрь 2010, 11:21)
---------------------------------------------
Сергей, ну да. Вот в этом и вопрос. Поэтому и спросил про кодирование.


Автор - Jivchik
Дата добавления - 24 Октября 2010 в 11:21
СергейДата: Вс, 24 Октября 2010, 11:29 | Сообщение # 72
Необукер
Quote (Jivchik)
Сергей, ну да. Вот в этом и вопрос
ну вот, и ненадо никаких алгоритмов на НБ, есть и плагин по мд5 и вбс функция.... Можно сделать по такому принципу:
1-обрезаная версия(демо), ее распростронять
2-чел который захотел ее купить, отпраляет бланк, где присутствует эта строка
3-дома компилируешь полноценую и зашиваешь мд-строку в проект, и высылаешь после оплаты..

Добавлено (24 Октябрь 2010, 11:29)
---------------------------------------------
а чтоб, чел потарапился с покупкой, можно при входе и выходе пускать месагу, что мол триальная и вообще на клик каждой кнопки тоже месага :D

Добавлено (24 Октябрь 2010, 11:29)
---------------------------------------------
это ппц, как напрегает

 
Сообщение
Quote (Jivchik)
Сергей, ну да. Вот в этом и вопрос
ну вот, и ненадо никаких алгоритмов на НБ, есть и плагин по мд5 и вбс функция.... Можно сделать по такому принципу:
1-обрезаная версия(демо), ее распростронять
2-чел который захотел ее купить, отпраляет бланк, где присутствует эта строка
3-дома компилируешь полноценую и зашиваешь мд-строку в проект, и высылаешь после оплаты..

Добавлено (24 Октябрь 2010, 11:29)
---------------------------------------------
а чтоб, чел потарапился с покупкой, можно при входе и выходе пускать месагу, что мол триальная и вообще на клик каждой кнопки тоже месага :D

Добавлено (24 Октябрь 2010, 11:29)
---------------------------------------------
это ппц, как напрегает


Автор - Сергей
Дата добавления - 24 Октября 2010 в 11:29
JivchikДата: Вс, 24 Октября 2010, 11:30 | Сообщение # 73
Любопытный
Сергей, если есть возможность "пожевать" ... буду рад. redface
 
СообщениеСергей, если есть возможность "пожевать" ... буду рад. redface

Автор - Jivchik
Дата добавления - 24 Октября 2010 в 11:30
DEMBELДата: Вс, 24 Октября 2010, 11:35 | Сообщение # 74
Наш дизайнер
про шифрование или генерацию ключа алгоритмом - чаще хочется оперировать структурированными данными типа A34G-D344-BN7N-VFT0-D01B а не шифрованным мусором типа
jlggBsb1D8T+tjVC0sWY71ddjURTd=YwZYyNet+Kv+znlA17hNIQNf+MuW/
XRyhBUJszVitgFgex8IhPI8OG9XoWCNn0MecInBLsC1457xsV3=


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениепро шифрование или генерацию ключа алгоритмом - чаще хочется оперировать структурированными данными типа A34G-D344-BN7N-VFT0-D01B а не шифрованным мусором типа
jlggBsb1D8T+tjVC0sWY71ddjURTd=YwZYyNet+Kv+znlA17hNIQNf+MuW/
XRyhBUJszVitgFgex8IhPI8OG9XoWCNn0MecInBLsC1457xsV3=

Автор - DEMBEL
Дата добавления - 24 Октября 2010 в 11:35
СергейДата: Вс, 24 Октября 2010, 11:38 | Сообщение # 75
Необукер
а что жевать, делай 1 программу обрезанную(работает например только одна функция), при загрузки ставишь вывод сообщения, при нажатии любой кнопки опять вывод сообщения, при закрытии программы тоже вывод мессаги
Захотел купить, там должна быть форма отправки, он вводит например логин и мыло, отправляешь данные + строку-мд5 к себе на мыло.
Дальше дело техники в полной версии делаешь проверку мд5-строки с той что прислали, и с тем что НБ получит сама....
 
Сообщениеа что жевать, делай 1 программу обрезанную(работает например только одна функция), при загрузки ставишь вывод сообщения, при нажатии любой кнопки опять вывод сообщения, при закрытии программы тоже вывод мессаги
Захотел купить, там должна быть форма отправки, он вводит например логин и мыло, отправляешь данные + строку-мд5 к себе на мыло.
Дальше дело техники в полной версии делаешь проверку мд5-строки с той что прислали, и с тем что НБ получит сама....

Автор - Сергей
Дата добавления - 24 Октября 2010 в 11:38
JivchikДата: Вс, 24 Октября 2010, 11:43 | Сообщение # 76
Любопытный
DEMBEL, Сергей,
начинаю понимать ...
A34G-D344-BN7N-VFT0-D01B это конечно предпочтительнее для меня, как мне кажется ...
 
СообщениеDEMBEL, Сергей,
начинаю понимать ...
A34G-D344-BN7N-VFT0-D01B это конечно предпочтительнее для меня, как мне кажется ...

Автор - Jivchik
Дата добавления - 24 Октября 2010 в 11:43
DEMBELДата: Вс, 24 Октября 2010, 12:13 | Сообщение # 77
Наш дизайнер
Quote (Сергей)
дома компилируешь полноценую и зашиваешь
тоже вариант
Quote (Сергей)
а если данные CpuID+логин+мыло объеденить в одну строку и кодировать в мд5, а потом сверять эту строку?!
прежде чем метаться, нужно выстроить четкую логическую цепочку, какие есть стадии активации и выбирать методы исходя из них. Для проверки cpuid самой прогой это вариант. Она хранит в реестре хэш данных и каждый раз его вычисляет, читает сохраненный вариант из реестра и сравнивает. А например, если потребуется передать автору данные для генерации ключа активации, хэш ему не поможет, его же никак не раскодируешь обратно. Ну чтож, придется мне вытащить из загашников старые наработки... Одна из многих примерных схем активации может быть такова:

1. [Локально] Генерация ключа-идентификатора системы
1.1 Пользователь вводит личные данные (мыло, имя)
1.2 Программа читает CPUID (любой ид железа или метка из комбинации ид железок)
1.3 На основе данных генерируется ключ по обратимому алгоритму, либо просто шифруется.
1.4 Отправка данных автору на мыло/на сервер для регистрации и обработки

2. [Удаленно] Генерация ключа активации
2.1 Расшифровка полученных данных, регистрация пользователя в базе.
2.2 На основе полученных данных генерируется новый ключ (содержит как минимум данные о ид железа, метку что нужно разблокировать в проге и др. инфу). Отправляется по полученному из ключа адресу на мыло.

3. [Локально] Активация приложения (тут самое важное и сложное)
3.1 Ввод ключа активации
3.2 Программа раскодирует ключ, получает из него ид железа на котором ей разрешен запуск.
3.3 Читает ид железа из системы и сравнивает его с полученным из ключа. Если метки совпадут, значит ключ подлинный. Происходит запуск в активированном режиме.
3.4 Сохранение информации в реестре (файле лицензии). Конечно, высылать можно не только ключ в виде строки но и в виде шифрованного файла лицензии.
3.4.1 Генерация строки в которой будет записано, что программа активирована и метка железа (присланная с ключом). Использовать можно хэш, но лучше обратимый алгоритм шифрования т.к. может потребоваться получение инфы пришедшей с ключом, и ее надо сохранить. Сохраняем строку в реестр.

4. [Локально]: Процедура валидации при каждом запуске программы (здесь очень внимательно все делать, обрабатывать любые ошибки и исключения. Требуется получить надежный вывод.)
4.1 При старте программа читает строку из реестра (если она есть), расшифровывает ее если ей нужны оттуда сохраненные данные из ключа активации. Если сохранялся только хэш по метке железа, то читаем данные системы и снова его вычисляем. Сравниваем полученный хэш с хэшем из реестра, если совпало значит активировано. Тут я все же рекомендую не пользоваться данными ид железа в чистом виде, иначе любой сможет посчитать хэш ид собственного железа, записать его в реестр и все. Нужно генерировать какую-то метку, в т.ч. включать туда знак того что программа активирована. Преимущество метода - данные не хранятся в исходном виде, расшифровать хэш нельзя. Сравниваем не данные между собой, а их хэши.
4.2 Если сохранялся не хэш а шифрованная строка, то расшифровываем, получаем обратно метку железа и др. инфу (метку об активации, имя пользователя и пр.), вычисляем метку системного железа и сравниваем ее с меткой из реестра, если совпало и в наличии инфа что прога активирована, запускаемся в активированном режиме.

В любом случае, возможны многочисленные вариации. Наиболее сложные и ответственные 3,4 моменты, тут надо все продумать досконально.

Добавлено (24 Октябрь 2010, 12:13)
---------------------------------------------

Quote (Сергей)
дома компилируешь полноценую и зашиваешь мд-строку в проект, и высылаешь после оплаты..
не совсем удобен такой обмен, если вдруг прога весит под несколько десятков мб? тут лучше оперировать строками-ключами.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (Сергей)
дома компилируешь полноценую и зашиваешь
тоже вариант
Quote (Сергей)
а если данные CpuID+логин+мыло объеденить в одну строку и кодировать в мд5, а потом сверять эту строку?!
прежде чем метаться, нужно выстроить четкую логическую цепочку, какие есть стадии активации и выбирать методы исходя из них. Для проверки cpuid самой прогой это вариант. Она хранит в реестре хэш данных и каждый раз его вычисляет, читает сохраненный вариант из реестра и сравнивает. А например, если потребуется передать автору данные для генерации ключа активации, хэш ему не поможет, его же никак не раскодируешь обратно. Ну чтож, придется мне вытащить из загашников старые наработки... Одна из многих примерных схем активации может быть такова:

1. [Локально] Генерация ключа-идентификатора системы
1.1 Пользователь вводит личные данные (мыло, имя)
1.2 Программа читает CPUID (любой ид железа или метка из комбинации ид железок)
1.3 На основе данных генерируется ключ по обратимому алгоритму, либо просто шифруется.
1.4 Отправка данных автору на мыло/на сервер для регистрации и обработки

2. [Удаленно] Генерация ключа активации
2.1 Расшифровка полученных данных, регистрация пользователя в базе.
2.2 На основе полученных данных генерируется новый ключ (содержит как минимум данные о ид железа, метку что нужно разблокировать в проге и др. инфу). Отправляется по полученному из ключа адресу на мыло.

3. [Локально] Активация приложения (тут самое важное и сложное)
3.1 Ввод ключа активации
3.2 Программа раскодирует ключ, получает из него ид железа на котором ей разрешен запуск.
3.3 Читает ид железа из системы и сравнивает его с полученным из ключа. Если метки совпадут, значит ключ подлинный. Происходит запуск в активированном режиме.
3.4 Сохранение информации в реестре (файле лицензии). Конечно, высылать можно не только ключ в виде строки но и в виде шифрованного файла лицензии.
3.4.1 Генерация строки в которой будет записано, что программа активирована и метка железа (присланная с ключом). Использовать можно хэш, но лучше обратимый алгоритм шифрования т.к. может потребоваться получение инфы пришедшей с ключом, и ее надо сохранить. Сохраняем строку в реестр.

4. [Локально]: Процедура валидации при каждом запуске программы (здесь очень внимательно все делать, обрабатывать любые ошибки и исключения. Требуется получить надежный вывод.)
4.1 При старте программа читает строку из реестра (если она есть), расшифровывает ее если ей нужны оттуда сохраненные данные из ключа активации. Если сохранялся только хэш по метке железа, то читаем данные системы и снова его вычисляем. Сравниваем полученный хэш с хэшем из реестра, если совпало значит активировано. Тут я все же рекомендую не пользоваться данными ид железа в чистом виде, иначе любой сможет посчитать хэш ид собственного железа, записать его в реестр и все. Нужно генерировать какую-то метку, в т.ч. включать туда знак того что программа активирована. Преимущество метода - данные не хранятся в исходном виде, расшифровать хэш нельзя. Сравниваем не данные между собой, а их хэши.
4.2 Если сохранялся не хэш а шифрованная строка, то расшифровываем, получаем обратно метку железа и др. инфу (метку об активации, имя пользователя и пр.), вычисляем метку системного железа и сравниваем ее с меткой из реестра, если совпало и в наличии инфа что прога активирована, запускаемся в активированном режиме.

В любом случае, возможны многочисленные вариации. Наиболее сложные и ответственные 3,4 моменты, тут надо все продумать досконально.

Добавлено (24 Октябрь 2010, 12:13)
---------------------------------------------

Quote (Сергей)
дома компилируешь полноценую и зашиваешь мд-строку в проект, и высылаешь после оплаты..
не совсем удобен такой обмен, если вдруг прога весит под несколько десятков мб? тут лучше оперировать строками-ключами.

Автор - DEMBEL
Дата добавления - 24 Октября 2010 в 12:13
СергейДата: Вс, 24 Октября 2010, 12:33 | Сообщение # 78
Необукер
Quote (DEMBEL)
не совсем удобен такой обмен, если вдруг прога весит под несколько десятков мб
и что, времена диалапов прошло надо избавлятся от стереотипа, можно и не саму прогу, а сделать стартер. Нб может открыть другой НБ-проект вместо себя с передачей всех переменых! Что не вариант?
 
Сообщение
Quote (DEMBEL)
не совсем удобен такой обмен, если вдруг прога весит под несколько десятков мб
и что, времена диалапов прошло надо избавлятся от стереотипа, можно и не саму прогу, а сделать стартер. Нб может открыть другой НБ-проект вместо себя с передачей всех переменых! Что не вариант?

Автор - Сергей
Дата добавления - 24 Октября 2010 в 12:33
JivchikДата: Вс, 24 Октября 2010, 12:41 | Сообщение # 79
Любопытный
DEMBEL, вот спасибо за "пожевать" ... теперь есть четкое понимание. То что я сделал ранее, конечно ни в какие ворота ...
 
СообщениеDEMBEL, вот спасибо за "пожевать" ... теперь есть четкое понимание. То что я сделал ранее, конечно ни в какие ворота ...

Автор - Jivchik
Дата добавления - 24 Октября 2010 в 12:41
DEMBELДата: Вс, 24 Октября 2010, 13:04 | Сообщение # 80
Наш дизайнер
Quote (Сергей)
Нб может открыть другой НБ-проект вместо себя с передачей всех переменых! Что не вариант?
немного подробнее, как вся процедура активации в целом может работать? я что-то не до конца втыкаю...

Добавлено (24 Октябрь 2010, 13:04)
---------------------------------------------

Quote (Jivchik)
теперь есть четкое понимание.

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


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (Сергей)
Нб может открыть другой НБ-проект вместо себя с передачей всех переменых! Что не вариант?
немного подробнее, как вся процедура активации в целом может работать? я что-то не до конца втыкаю...

Добавлено (24 Октябрь 2010, 13:04)
---------------------------------------------

Quote (Jivchik)
теперь есть четкое понимание.

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

Автор - DEMBEL
Дата добавления - 24 Октября 2010 в 13:04
СергейДата: Вс, 24 Октября 2010, 13:37 | Сообщение # 81
Необукер
Quote (DEMBEL)
немного подробнее, как вся процедура активации в целом может работать? я что-то не до конца втыкаю...
хорошо...
 
Сообщение
Quote (DEMBEL)
немного подробнее, как вся процедура активации в целом может работать? я что-то не до конца втыкаю...
хорошо...

Автор - Сергей
Дата добавления - 24 Октября 2010 в 13:37
Snow_IrbisДата: Вс, 24 Октября 2010, 13:51 | Сообщение # 82
Участник
Quote (Сергей)
хорошо...

Если DEMBEL, не втыкает значит и продвинутый крякер тоже не поймет :)

 
Сообщение
Quote (Сергей)
хорошо...

Если DEMBEL, не втыкает значит и продвинутый крякер тоже не поймет :)


Автор - Snow_Irbis
Дата добавления - 24 Октября 2010 в 13:51
JivchikДата: Вс, 24 Октября 2010, 15:10 | Сообщение # 83
Любопытный
DEMBEL, может не совсем в кассу, но вот нашел один сайтик
. MD5 там тока так расшифровываются ... scared

Добавлено (24 Октябрь 2010, 15:10)
---------------------------------------------
А не, фальстарнул )) Это просто база ))

 
СообщениеDEMBEL, может не совсем в кассу, но вот нашел один сайтик
. MD5 там тока так расшифровываются ... scared

Добавлено (24 Октябрь 2010, 15:10)
---------------------------------------------
А не, фальстарнул )) Это просто база ))


Автор - Jivchik
Дата добавления - 24 Октября 2010 в 15:10
DEMBELДата: Вс, 24 Октября 2010, 15:25 | Сообщение # 84
Наш дизайнер
ничего нигде не расшифровывается, просто генерируются хэши и ведутся их базы. Допустим почти все простые короткие цифровые пароли можно в них найти их хэши, я таким макаром часто расшифровывал пароли от вконтакта. А длинную строчку непонятного содержимого - бесполезно. Но если вам это не дает спокойно спать или нужен хэш короткой строки, то это легко обходится двойным, тройным хэшированием - md5(md5(пароль)) или модификацией строки md5(строка+мусор) или все вместе md5(md5(md5(строка+мусор))). Все эти базы на лоховские пароли, еще ни разу ничего реально нужного не расшифровал.

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеничего нигде не расшифровывается, просто генерируются хэши и ведутся их базы. Допустим почти все простые короткие цифровые пароли можно в них найти их хэши, я таким макаром часто расшифровывал пароли от вконтакта. А длинную строчку непонятного содержимого - бесполезно. Но если вам это не дает спокойно спать или нужен хэш короткой строки, то это легко обходится двойным, тройным хэшированием - md5(md5(пароль)) или модификацией строки md5(строка+мусор) или все вместе md5(md5(md5(строка+мусор))). Все эти базы на лоховские пароли, еще ни разу ничего реально нужного не расшифровал.

Автор - DEMBEL
Дата добавления - 24 Октября 2010 в 15:25
JivchikДата: Вс, 24 Октября 2010, 15:28 | Сообщение # 85
Любопытный
DEMBEL, ага. Я уже понял. :D
 
СообщениеDEMBEL, ага. Я уже понял. :D

Автор - Jivchik
Дата добавления - 24 Октября 2010 в 15:28
СергейДата: Вс, 24 Октября 2010, 19:43 | Сообщение # 86
Необукер
ну вотспособ о котором я писал
короче у юзера находится проект, это файл стартер(startDemo.pub) и файл проекта(app.pub)
1-Он решил купить прогу и есно в проекте(startDemo.pub) нажимает кнопку "Купить" - заполняет форму и отправляет письмо автору
2-Автор получает письмо с даными(mail.txt) и генерирует код своим генератором(avtor.pub)
Один код вида UPS-ХХХХХ-ХХХХХ-ХХХХ-ХХ вкладывается в письмо, второй зашивается в проекте(startActiv.pub) все это отправляется письмом юзеру
3-Проверяем проект(вместо юзера) запускаем startActiv.pub вводим С\Н, программа активирована
4-запускаем еще раз для проверки startActiv.pub
Предупреждаю, исходники не прилизаны, чисто показать принцип работы, остально доделайте сами
Внимание, для теста надо скомпилировать проекты, иначе будет ошибка по именам
итак:
0)компилируем app.pub
1)запускаем проект startDemo.pub, после отправки данных....
2)открываем avtor.pub(его можно не компилировать) генерируем код
3)зашиваем полученый код в startActiv.pub в переменую (SetVar "[strSNApp]" "ХХХХХХХХХХХХХХХХ"), компилируем
4)запускаем startActiv.pub выбираем "Ввести С\Н" и вводим код(вида UPS-ХХХХХ-ХХХХХ-ХХХХ-ХХ)
5)можно еще раз запустить startActiv.pub программа сразу перейдет к активированной странице
Возможно, можно и упростить...
Прикрепления: activate.rar (10.4 Kb)


Сообщение отредактировано
Сергей - Вс, 24 Октября 2010, 19:44
 
Сообщениену вотспособ о котором я писал
короче у юзера находится проект, это файл стартер(startDemo.pub) и файл проекта(app.pub)
1-Он решил купить прогу и есно в проекте(startDemo.pub) нажимает кнопку "Купить" - заполняет форму и отправляет письмо автору
2-Автор получает письмо с даными(mail.txt) и генерирует код своим генератором(avtor.pub)
Один код вида UPS-ХХХХХ-ХХХХХ-ХХХХ-ХХ вкладывается в письмо, второй зашивается в проекте(startActiv.pub) все это отправляется письмом юзеру
3-Проверяем проект(вместо юзера) запускаем startActiv.pub вводим С\Н, программа активирована
4-запускаем еще раз для проверки startActiv.pub
Предупреждаю, исходники не прилизаны, чисто показать принцип работы, остально доделайте сами
Внимание, для теста надо скомпилировать проекты, иначе будет ошибка по именам
итак:
0)компилируем app.pub
1)запускаем проект startDemo.pub, после отправки данных....
2)открываем avtor.pub(его можно не компилировать) генерируем код
3)зашиваем полученый код в startActiv.pub в переменую (SetVar "[strSNApp]" "ХХХХХХХХХХХХХХХХ"), компилируем
4)запускаем startActiv.pub выбираем "Ввести С\Н" и вводим код(вида UPS-ХХХХХ-ХХХХХ-ХХХХ-ХХ)
5)можно еще раз запустить startActiv.pub программа сразу перейдет к активированной странице
Возможно, можно и упростить...

Автор - Сергей
Дата добавления - 24 Октября 2010 в 19:43
JivchikДата: Вс, 24 Октября 2010, 20:02 | Сообщение # 87
Любопытный
Сергей, можно ссылку на vbs функцию где скачать ... не могу найти.

Call "dembel\Mac_pid\mac_pid"

 
СообщениеСергей, можно ссылку на vbs функцию где скачать ... не могу найти.

Call "dembel\Mac_pid\mac_pid"


Автор - Jivchik
Дата добавления - 24 Октября 2010 в 20:02
СергейДата: Вс, 24 Октября 2010, 20:06 | Сообщение # 88
Необукер
Quote (Jivchik)
Сергей, можно ссылку на vbs функцию
ищи в этой теме, либо в моих постах, либо в постах DEMBEL,
 
Сообщение
Quote (Jivchik)
Сергей, можно ссылку на vbs функцию
ищи в этой теме, либо в моих постах, либо в постах DEMBEL,

Автор - Сергей
Дата добавления - 24 Октября 2010 в 20:06
JivchikДата: Вс, 24 Октября 2010, 20:07 | Сообщение # 89
Любопытный
 
Сообщение

Автор - Jivchik
Дата добавления - 24 Октября 2010 в 20:07
СергейДата: Вс, 24 Октября 2010, 20:23 | Сообщение # 90
Необукер

Ищи тему "Библиотека функций для NeoBook" в "Загрузка NeoBook"


Сообщение отредактировано
Сергей - Вс, 24 Октября 2010, 20:24
 
Сообщение

Ищи тему "Библиотека функций для NeoBook" в "Загрузка NeoBook"

Автор - Сергей
Дата добавления - 24 Октября 2010 в 20:23
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Получение информации о устройствах ПК
  • Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск: