Russian Qt Forum
Апрель 20, 2024, 12:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Защита программы на Qt  (Прочитано 29773 раз)
mwnuke
Гость
« : Март 19, 2008, 08:27 »

Здравствуйте!

Начальство пожелало, чтобы на программу была установлена защита в виде привязки к идентификатору компьютера (hardwareID).
Чтобы сгенерировать этот идентификатор мне необходимо получить серийный номер какой-нибудь железяки (матери, винта и т.д.).
В случае с Windows эти данные выдираются с помощью WinAPI.
Но программа-то у нас на Qt ))
Отсюда вопрос: можно ли средствами Qt получить уникальный идентификатор компьютера?
Если нет - то посоветуйте альтернативные варианты.

Спасибо!
Записан
Tonal
Гость
« Ответ #1 : Март 19, 2008, 11:12 »

Купить нормальную ключевую защиту?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Март 19, 2008, 12:22 »

А что тебе мешает использовать винапи?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
mwnuke
Гость
« Ответ #3 : Март 19, 2008, 18:59 »

А что тебе мешает использовать винапи?
Под Windows - не мешает.   Улыбающийся
Под Linux и MaсOS - мешает отсутствие этого самого WinAPI  Смеющийся  Смеющийся

До аппаратных ключей наша контора вряд ли снизойдет, так что, видимо придется писать свой кроссплатформенный класс, где использовать родные Апи операционок ))
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Март 19, 2008, 19:03 »

Поищи в stl, может что и накопаешь. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Вячеслав
Гость
« Ответ #5 : Март 19, 2008, 19:38 »

Вообще , если у конторы нет денег ну хотя-бы (http://www.astroma-spb.ru/ru/products/protection/ - НЕ РЕКЛАММА !), то заморачиваться с защитой - себе дороже ... Если продукт действительно  востребован - поломают нафиг фсе эти привязки на раз ... Особеноо просто под пингвином Подмигивающий
Записан
mwnuke
Гость
« Ответ #6 : Март 19, 2008, 21:04 »

Вообще , если у конторы нет денег ну хотя-бы (http://www.astroma-spb.ru/ru/products/protection/ - НЕ РЕКЛАММА !), то заморачиваться с защитой - себе дороже ... Если продукт действительно  востребован - поломают нафиг фсе эти привязки на раз ... Особеноо просто под пингвином Подмигивающий
У конторы деньги есть, только делается все как правило очень и очень не скоро.
Пока они это дело закупят - страшно подумать сколько времени пройдет. ))
Записан
Вячеслав
Гость
« Ответ #7 : Март 19, 2008, 21:28 »

Хм ... А пойти по пути того-ж qcad'а ( кстати на куте написан ) ?
Записан
mwnuke
Гость
« Ответ #8 : Март 19, 2008, 21:35 »

Хм ... А пойти по пути того-ж qcad'а ( кстати на куте написан ) ?
Просветите пожайлуста, в чем заключается этот путь?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #9 : Март 19, 2008, 22:07 »

Купить нормальную ключевую защиту?

+1

Есть неплохию ключи, но правда под винду  - http://www.guardant.ru/
« Последнее редактирование: Март 19, 2008, 22:10 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #10 : Июнь 14, 2010, 16:19 »

с момента создания темы прошло 2 года, может быть сегодня будут какие-нибудь новые интересные варианты решения данной задачи, кроме покупки и привязки к железу?
Надо поставить защиту на софтину, а связывать её с сервером не хотелось бы, зачем лишние зависимости.
Интереса ради: а по какому принципу ломается простейшая защита типа вшитого пароля в саму прогу, hex-редактором или чем, может кто-нибудь в курсе? Просто интересно очень, никогда не пробовал эту нишу. И если это дело вырезается, то что мешает вырезать код синхронизации с сервером (хотя эта защита считается надёжнее чем первый вариант)?
« Последнее редактирование: Июнь 14, 2010, 20:42 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
ieroglif
Гость
« Ответ #11 : Июнь 14, 2010, 18:16 »

мне кажется, что вопрос защиты упирается в основном не в технически детали - как привязаться к железу или к серверу, а скорее - как защитить код защиты от взлома.
мне кажется что если погуглить, то не проблемно найти классы для привязок к железу под основные ОС - линух, мак, венды. объеденить это в один Qt класс - займёт конечно время, но не сильно много.

а вот как защитить код?
то о чём я СЛЫШАЛ - обфускация, компрессия, выполнение какого-то динамического кода в памяти (про это интереснее всего). ничего из этого ручками не трогал - как-то не дотягивались Улыбающийся
так что мне кажется, что хоть для данного форума тема крайне полезна, но ответы лучше искать на других форумах (wasm.ru к примеру)
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #12 : Июнь 14, 2010, 19:43 »

Интереса ради: а по какому принципу ломается простейшная защита типа вшитого пароля в саму прогу, hex-редактором или чем, может кто-нибудь в курсе? Просто интересно очень, никогда не пробовал эту нишу. И если это дело вырезается, то что мешает вырезать код синхронизации с сервером (хотя эта защита считается надёжнее чем первый вариант)?
Уже много лет как я этим перестал заниматься, так что мои познания во взломе устарели  Улыбающийся Но если очень грубо/приближенно то принципы выглядят так:

- нужно запустить программу в отладчике

- тормознуться (breakpoint) там где проверяется защита. Сильно помогает вызов WinAPI (хороший отладчик их прекрасно отслеживает), а MacsBug - то вообще была песня. Хорошая помощь диалог типа "программа не авторизована" - ведь по стеку видно откуда пришло управление

- дальше анализ проверок/if'ов и забивание их nop'ами, xor'ами. Разумеется не всегда это проходит - но в очень многих случаях - на ура. Большинство пишущих не имеют никакого понятия как строится код и лепят что-то типа
Код:
if (strcmp(currentCode, correctCode) != 0)
 ...
Конечно это становятся легкой добычей  Улыбающийся
А вообще гораздо интереснее писать программы чем ломать их
Записан
Sancho_s_rancho
Гость
« Ответ #13 : Июнь 14, 2010, 20:18 »

а вот как защитить код?
то о чём я СЛЫШАЛ - обфускация, компрессия, выполнение какого-то динамического кода в памяти (про это интереснее всего). ничего из этого ручками не трогал - как-то не дотягивались Улыбающийся
так что мне кажется, что хоть для данного форума тема крайне полезна, но ответы лучше искать на других форумах (wasm.ru к примеру)
Знавал я одну программу, автор которой очень не хотел, чтобы ее сломали. Программа была весьма навороченной(много математики и графики, спектры там разные) и являлась штучным товаром. Так он сделал привязку к железу и модификацию кода в памяти. В результате если у пользователя летело железо, то он вынужден был обращаться к разработчику, а при работе касперского(может и некоторых других антивирусов) его программа начинала выдавать ошибки(антивирус не любит всякий самомодифицирующийся код и ставит палки в колеса). Но разработчика это устраивает, т.к. штучный товар. Если вы готовы решать головные боли пользователя и "крутой" защиты, то реализовывайте что-нибудь аналогичное.
пи.си. конечно эту программу никто не взломал. Но не потому что крутая защита, а просто пользователей всего несколько сотен.
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #14 : Июнь 14, 2010, 20:23 »

Большинство пишущих не имеют никакого понятия как строится код и лепят что-то типа
Код:
if (strcmp(currentCode, correctCode) != 0)
 ...
да, вот поэтому и интересны детали взлома - чтобы знать чего точно не надо делать Смеющийся
« Последнее редактирование: Июнь 14, 2010, 20:27 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 22.