Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание защиты программы. 
:(
    Опции темы
Нитонисе
Дата 10.12.2009, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: нет
Всего: 2



Нужно установить защиту на программу, таким образом, чтобы она могла запускаться только на одном компьютере. То есть - у пользователя есть экземпляр программы, он проводит ее активацию с моей помощью, после чего он может пользоваться этой программой, но только на том компьютере, где эта программа была установлена. Как это можно реализовать?
PM MAIL   Вверх
djamshud
Дата 10.12.2009, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: нет
Всего: 39



Можно привязаться к железу. И знать, что вас сломают.

К с++ вопрос отношения не имеет.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Нитонисе
Дата 10.12.2009, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: нет
Всего: 2



Я пишу на С++, потому тут и разместил эту тему. На счет привязки к железу это понятно, не понятна только конкретная реализация. 
PM MAIL   Вверх
GoldFinch
Дата 10.12.2009, 12:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



Нитонисе, юзай поиск по форуму и гугл, тема - боян
PM MAIL ICQ   Вверх
xvr
Дата 10.12.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Цитата

он может пользоваться этой программой, но только на том компьютере, где эта программа была установлена. Как это можно реализовать?
Со 100% надежностью - только вынеся жизненно важную часть функционала программы во внешний аппаратный (защищенный) ключ. Чисто софтово (со 100% надежностью) - невозможно

PM MAIL   Вверх
17dufa
Дата 10.12.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 2.3.2006

Репутация: нет
Всего: 5



когда в универе делали подобную лабу привязывались к ID процессора, ID жесткого диска (не тома, а именно диска) или MAC адресу сетевухи. Если будет малейшее желание сломать такую защиту - действительно сломают, ломают даже HASP ключи smile 
*MAC сетевухи в винде, наскока мне известно, вообще мона поменять (при перезагрузке он приравнивается реальному, но во время сеанса можно поменять и все следующие запросы MAC в этом сеансе будут возвращать измененное значение). 
Какие конкретно API использовали - уже не помню, гугл в помощь. 
PM MAIL   Вверх
xvr
Дата 10.12.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Вдогонку - можно привязать к конкретной Винде через CryptoAPI (см. сертификаты и хранилища ключей). Если на компе есть TPM, то наверное возможно привязаться к нему.
Но в любом случае это програмная защита, и она может быть отломана  smile 

PM MAIL   Вверх
Нитонисе
Дата 10.12.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: нет
Всего: 2



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

Добавлено через 56 секунд
Я так понимаю прописывать в реестре какие-то спец-ключи - неэффективная защита?
PM MAIL   Вверх
17dufa
Дата 10.12.2009, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 2.3.2006

Репутация: нет
Всего: 5



Нитонисе, смотря от кого. от тетечки гоняющей солитер - более чем smile 
PM MAIL   Вверх
GoldFinch
Дата 10.12.2009, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



Цитата(xvr @  10.12.2009,  14:44 Найти цитируемый пост)
Со 100% надежностью - только вынеся жизненно важную часть функционала программы во внешний аппаратный (защищенный) ключ. Чисто софтово (со 100% надежностью) - невозможно

внешний аппаратный ключ взаимодействует с программой через кучу левого софта, поэтому ключи можно эмулировать

"софтово" - можно реализовать с большей надежностью, чем аппаратно, если код защиты нельзя будет протрассировать\перехватить

т.е. если допустим где-то в памяти есть значение, уникальное для системы, и если код защиты может прочитать это значение только своими средствами, не вызывая системных АПИ, то такой код можно виртуализировать, и такую защиту практически невозможно будет реверсировать используя дизасм и отладку.

Добавлено через 2 минуты и 21 секунду
и да, можно защитить не "уникально для системы" а "уникально для экземпляра программы", если программа будет стучаться на серв в интернетах, который будет проверять не запущены ли где-то еще ее копии.
PM MAIL ICQ   Вверх
17dufa
Дата 10.12.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 2.3.2006

Репутация: нет
Всего: 5



GoldFinch, а про вариант "и если код защиты может прочитать это значение только своими средствами, не вызывая системных АПИ, то такой код можно виртуализировать, и такую защиту практически невозможно будет реверсировать используя дизасм и отладку." где можно подробней почитать? что-то не совсем понимаю.
PM MAIL   Вверх
GoldFinch
Дата 10.12.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



17dufa, ты когданить код накрытый themidа/winlicense видел? 
это когда 30 инструкций процессора превращаются в 3миллиона инструкций

конечно если из кода накрытого ВМ вызывается АПИ, это эту АПИ можно перехватить, и примерно понять что этот код делает.
а если код не вызывает апи - его практически невозможно реверсировать.
декомпилировать ВМ у themida допустим можно, но ничто не мешает сделать ее метаморфной.
PM MAIL ICQ   Вверх
xvr
Дата 10.12.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Цитата(GoldFinch @ 10.12.2009,  15:26)
Цитата(xvr @  10.12.2009,  14:44 Найти цитируемый пост)
Со 100% надежностью - только вынеся жизненно важную часть функционала программы во внешний аппаратный (защищенный) ключ. Чисто софтово (со 100% надежностью) - невозможно

внешний аппаратный ключ взаимодействует с программой через кучу левого софта, поэтому ключи можно эмулировать

Ключевое слово вынеся жизненно важную часть функционала программы во внешний аппаратный (защищенный) ключ. Т.е. ВНУТРИ ключа крутится часть программы. Для его эмуляции эту часть программы придется написать с нуля. Если эта 'часть' будет правильно выбранна, то такое 'написание с нуля' по трудозатратам будет эквивалентно вообще написанию всей программы с нуля.
Так что это не ломается.

Цитата

"софтово" - можно реализовать с большей надежностью, чем аппаратно, если код защиты нельзя будет протрассировать\перехватить
На реальном CPU это всегда можно сделать, например запустив все (вместе с Windows) под какой нибудь виртуальной машиной.

PM MAIL   Вверх
17dufa
Дата 10.12.2009, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 2.3.2006

Репутация: нет
Всего: 5



xvr, взаимодействие с аппаратным ключом идет через сторонний софт (в частности ОС), что мешает просто в тупую записать весь лог взаимодействия и в последствии его сэмулировать?

Хотя понял, взаимодействие недетерминировано. Но попробовать можно.

Это сообщение отредактировал(а) 17dufa - 10.12.2009, 18:48
PM MAIL   Вверх
xvr
Дата 10.12.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Цитата(17dufa @ 10.12.2009,  18:46)
xvr, взаимодействие с аппаратным ключом идет через сторонний софт (в частности ОС), что мешает просто в тупую записать весь лог взаимодействия и в последствии его сэмулировать?

Пример - делаем САПР для разводки печатных плат. Сам разводчик помещаем в ключ. Т.е. при старте в него заливается netlist, в конце из него читается готовая топология.
Перехватив и записав ВЕСЬ обмен данными с ключем, мы сможем сделать его эмулятор, который будет корректно разводить одну единственную плату, ту, на которой его ломали  smile 

Цитата

Хотя понял, взаимодействие недетерминировано. 
Именно

PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Технологии защиты программного обеспечения | Следующая тема »


 




[ Время генерации скрипта: 0.1410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.