|
|
|
Нитонисе |
|
|||
Опытный Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: нет Всего: 2 |
Нужно установить защиту на программу, таким образом, чтобы она могла запускаться только на одном компьютере. То есть - у пользователя есть экземпляр программы, он проводит ее активацию с моей помощью, после чего он может пользоваться этой программой, но только на том компьютере, где эта программа была установлена. Как это можно реализовать?
|
|||
|
||||
djamshud |
|
|||
Пердупержденный Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: нет Всего: 39 |
Можно привязаться к железу. И знать, что вас сломают.
К с++ вопрос отношения не имеет. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
Нитонисе |
|
|||
Опытный Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: нет Всего: 2 |
Я пишу на С++, потому тут и разместил эту тему. На счет привязки к железу это понятно, не понятна только конкретная реализация.
|
|||
|
||||
GoldFinch |
|
|||
Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
Нитонисе, юзай поиск по форуму и гугл, тема - боян
|
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
|
|||
|
||||
17dufa |
|
|||
Опытный Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: нет Всего: 5 |
когда в универе делали подобную лабу привязывались к ID процессора, ID жесткого диска (не тома, а именно диска) или MAC адресу сетевухи. Если будет малейшее желание сломать такую защиту - действительно сломают, ломают даже HASP ключи
*MAC сетевухи в винде, наскока мне известно, вообще мона поменять (при перезагрузке он приравнивается реальному, но во время сеанса можно поменять и все следующие запросы MAC в этом сеансе будут возвращать измененное значение). Какие конкретно API использовали - уже не помню, гугл в помощь. |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Вдогонку - можно привязать к конкретной Винде через CryptoAPI (см. сертификаты и хранилища ключей). Если на компе есть TPM, то наверное возможно привязаться к нему.
Но в любом случае это програмная защита, и она может быть отломана |
|||
|
||||
Нитонисе |
|
|||
Опытный Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: нет Всего: 2 |
Программа не сильно важная, потому супер-мега защита не требуется. Нужна простенькая защита от мелких вредителей. То есть чтобы если вдруг кому-то захочется осуществить взлом - программа должна продержаться хотя бы день))
Добавлено через 56 секунд Я так понимаю прописывать в реестре какие-то спец-ключи - неэффективная защита? |
|||
|
||||
17dufa |
|
|||
Опытный Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: нет Всего: 5 |
Нитонисе, смотря от кого. от тетечки гоняющей солитер - более чем
|
|||
|
||||
GoldFinch |
|
|||
Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
внешний аппаратный ключ взаимодействует с программой через кучу левого софта, поэтому ключи можно эмулировать "софтово" - можно реализовать с большей надежностью, чем аппаратно, если код защиты нельзя будет протрассировать\перехватить т.е. если допустим где-то в памяти есть значение, уникальное для системы, и если код защиты может прочитать это значение только своими средствами, не вызывая системных АПИ, то такой код можно виртуализировать, и такую защиту практически невозможно будет реверсировать используя дизасм и отладку. Добавлено через 2 минуты и 21 секунду и да, можно защитить не "уникально для системы" а "уникально для экземпляра программы", если программа будет стучаться на серв в интернетах, который будет проверять не запущены ли где-то еще ее копии. |
|||
|
||||
17dufa |
|
|||
Опытный Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: нет Всего: 5 |
GoldFinch, а про вариант "и если код защиты может прочитать это значение только своими средствами, не вызывая системных АПИ, то такой код можно виртуализировать, и такую защиту практически невозможно будет реверсировать используя дизасм и отладку." где можно подробней почитать? что-то не совсем понимаю.
|
|||
|
||||
GoldFinch |
|
|||
Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
17dufa, ты когданить код накрытый themidа/winlicense видел?
это когда 30 инструкций процессора превращаются в 3миллиона инструкций конечно если из кода накрытого ВМ вызывается АПИ, это эту АПИ можно перехватить, и примерно понять что этот код делает. а если код не вызывает апи - его практически невозможно реверсировать. декомпилировать ВМ у themida допустим можно, но ничто не мешает сделать ее метаморфной. |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Ключевое слово вынеся жизненно важную часть функционала программы во внешний аппаратный (защищенный) ключ. Т.е. ВНУТРИ ключа крутится часть программы. Для его эмуляции эту часть программы придется написать с нуля. Если эта 'часть' будет правильно выбранна, то такое 'написание с нуля' по трудозатратам будет эквивалентно вообще написанию всей программы с нуля. Так что это не ломается.
|
|||
|
||||
17dufa |
|
|||
Опытный Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: нет Всего: 5 |
xvr, взаимодействие с аппаратным ключом идет через сторонний софт (в частности ОС), что мешает просто в тупую записать весь лог взаимодействия и в последствии его сэмулировать?
Хотя понял, взаимодействие недетерминировано. Но попробовать можно. Это сообщение отредактировал(а) 17dufa - 10.12.2009, 18:48 |
|||
|
||||
xvr |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Пример - делаем САПР для разводки печатных плат. Сам разводчик помещаем в ключ. Т.е. при старте в него заливается netlist, в конце из него читается готовая топология. Перехватив и записав ВЕСЬ обмен данными с ключем, мы сможем сделать его эмулятор, который будет корректно разводить одну единственную плату, ту, на которой его ломали
|
||||
|
|||||
W4FhLF |
|
|||
found myself Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
xvr, а какое щас железо в ключиках? Писать целиком "жизненно важную часть" под ключ (там же ARM вроде всегда были) это тоже весьма трудозатратно. И не факт, что потом этот алгоритм будет удовлетворять требованиям. Это если сравнивать с ВМ на CPU.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
xvr |
|
||||||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Какое поставят, то и будет
|
||||||
|
|||||||
DrHex |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 171 Регистрация: 2.5.2009 Репутация: нет Всего: нет |
все зависит то что хочет автор, если знает заранее ключ компьютера(например ид железа) то надо будет сделать что то типо архива с паролям(ну и конечно что паролем будет именно этот ключ, а когда программа стартует то читает текущие значения ид(винчестера) сравнимает с оригинальным по CRC32 к примеру и если подходит то начинает расспаковку), но с другой стороны как узнать ключ заранее???
Конечно можно сделать саможификацию инсталяции, но если сохранят на диск то тут маленький трабыл, хотя.... Вообще это исскуство где нужна фантация... --------------------
google.com и это все. |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
В одном маленьком королевстве жил-был король, который очень любил воевать. И очень он любил разное оружие и защиту от него. И пришел как то к нему изобретатель, и сказал: - О великий король, я изобрел пушку, которая может пробить любую броню! Вот ее чертежи, - с этими словами он полез в карман, достал чертежи и вручил их королю. Обрадовался король, велел выдать изобретателю 1000 золотых. А изобретатель достал из 2го кармана пачку чертежей и продолжил: - А еще я изобрел броню, которую не может пробить эта пушка! Обрадовался король, велел выдать изобретателю еще 1000 золотых. А изобретатель полез в 3й карман, достал еще пачку чертежей, и продолжил: - А еще я изобрел пушку, которая может пробить эту броню. Задумался король, но все же велел дать изобретателю еще 1000 золотых. А изобретатель достал из 4го кармана еще одну пачку чертежей, и сказал: - А еще я изобрел бро... Тут король велел страже схватить изобретатели и пересчитать, сколько у него карманов. - 145 штук, - пересчитала стража. И велел король выдать изобретателю 145000 золотых, а затем немедленно казнить. После чего запретил заниматься изобретательством в своем королевстве под страхом смертной казни. |
|||
|
||||
29Victor29 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.12.2009 Репутация: нет Всего: нет |
Подскажите пожалуйста, где можно найти информацию для написания драйвера для USB-устройств ( можно под DOS , лучше на C/C++ , хотя буду рад любому предложенному Вами варианту ).
ЗАРАНИЕ БЛАГОДАРЮ ВСЕХ ОТКЛИКНУВШИХСЯ!!! |
|||
|
||||
rthsobakas |
|
|||
Опытный Профиль Группа: Awaiting Authorisation Сообщений: 562 Регистрация: 20.9.2007 Репутация: нет Всего: -1 |
я извиняюсь что тут вмешиваюсь. Я все не читал тока начало. А что если исользовать параметры железа(тока не говорить никому какого) как ключи при шифровании rsa. То есть прога делает откртый , закрытый ключ, потом расшифровывает прогу в память. Как -нибудь так..
|
|||
|
||||
kolobok0 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 64 Регистрация: 24.12.2008 Репутация: нет Всего: 2 |
1) взять отпечаток ключа под дебагером - два пальца об асфальт. 2) в защите есть парадокс. а) защита нужна для коммерческого софта - иначе теряется смысл. б) слишком полная и правильная защита отрицательно влияет на распространение софта. посему помимо защиты, не забывайте дать халяву народу. а защиту стройте не только на софтверном уровне, но и юзайте железо. оптимальней - ключи. ещё круче - логическую защиту. это когда взломав софтверную илижелезячную - понимаешь что потратил время впустую удачи Вам (круглый) ЗЫ По поводу расшифровывания программы - см. цербер (дос) была когда то такая софтинка для защиты. уход от отладки, изменение среды работы, дешифровка программы на старте. брешь - защита чужих программ |
|||
|
||||
BEOWOLF |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 24.8.2007 Репутация: нет Всего: 2 |
Да забудьте вы наконец о защите программ через ID винчестера, видеокарты и прочего железа, сколько можно писать, что эта защита - полная туфта? Поясню, почему. Во-первых, вы договариваетесь с клиентом насчёт софта, а не обязываете его привязаться к железу. Может он захочет проапгрейдить камп, или поработать с программой дома/наработе. А может установит программу на внешний винчестер, один на всех. Во-вторых, группе пользователей ничто не мешает установить VMWare, и спокойно пользоваться несколькими копиями программы якобы под одним и тем же железом. Именно так все и поступают в подобных случаях. Что делать? Самый лучший вариант - когда пользователь запускает программу, то копия логинится на вашем сервере, когда закрывает программу - logout. И таким образом, лицензионные соглашения всегда будут выполняться - залогиненой сможет быть только то количество копий, о котором договаривались, и не больше, ну а запускаться они смогут с того железа, с которого удобно |
|||
|
||||
Abyx |
|
|||
Опытный Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: нет Всего: 10 |
BEOWOLF, не везде есть и может быть интернет.
|
|||
|
||||
Cтpaнник |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 53 Регистрация: 12.10.2008 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Ага. А если проге по логике ее работы доступ в Инет и нафиг не нужен, то подобная ненужная и непонятная сетевая активность вызывает паранойю у системных администраторов, и прога быстро "получает по рукам" файерволом. С соответствующими юридическими последствиями для разработчика, разумеется. |
|||
|
||||
CasperSC |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
А что за это ещё и какие-то последствия могут быть? Ты же не крадёшь конфиденциальную информацию, да ещё и в соглашении можно указать, что программа, соединяется с интернетом. Ну или при проверке новой версии, можно логиниться. Dotfuscator нормально защищает сам код программы? |
|||
|
||||
Yogurt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 27.8.2009 Репутация: нет Всего: нет |
У меня в программе есть функция, которая берёт имя компьютера, шифрует его, и записывает в идентификационный файл. Но сама программа разблокируется только после нажатия определённой последовательности букв на клавиатуре. Нажатия перехватывает PreTranslateMessage. Затем вышеуказанная функция, и затем человек работает уже без меня
Тут единственная проблема, что удалённо программу не поставишь |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
||||
|
||||
Yogurt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 27.8.2009 Репутация: нет Всего: нет |
Я за всю жизнь не разу не менял имя просто так. Это делается только при переустановке ОС. При это, естественно, придётся переустанавливать всё ПО.
Я опирался на начала темы, человек пишет, что сам устанавливает. Если все кнопки заблокированы, и разблокируются только после нажатия подряд определённой комбинации. После этого программа работает уже сама, запускается сколько угодно раз без участия разработчика
Это сообщение отредактировал(а) Yogurt - 14.2.2011, 16:35 |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
||||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
||||
|
||||
Hayate |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Можно где-нибудь почитать про проектирование таких приложений? А то хочется попробовать у ПО с открытым исходным кодом вынести жизненно важную часть функционала на сервер в интернете. |
|||
|
||||
PavelSafonov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 29.1.2015 Репутация: нет Всего: нет |
Можно вынести жизненно важный функционал (в виде бинарного кода) на сервер и организовать лицензионный доступ с контролем кол-ва запущенных процессов. Это реалиует технология StubIt - система защиты и лицензирования программного обеспечения.
|
|||
|
||||
chukhlomin |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 17.7.2012 Где: Москва Репутация: нет Всего: нет |
28 июля компания SafeNet(мировой лидер в области защиты и лицензирвания программного обеспечения(ключи HASP/Sentinel)), будет проводить бесплатный вебинар по теме защиты и лицензирования ПО.
На вебинаре будут наглядно продемонстиррованы способы защиты ПО с использования аппаратных, программных и облачных ключей защиты. Также будут показаны способы создания демо-версий, удаленных обновлений лицензий, перенос части кода для выполнения внутри ключа защиты и многое другое. Зарегистрироваться на вебинар можно по ссылке: _http://safenet-sentinel.ru/events/index.php?ELEMENT_ID=6512 |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Технологии защиты программного обеспечения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |