Название: Защита программы на Qt Отправлено: mwnuke от Март 19, 2008, 08:27 Здравствуйте!
Начальство пожелало, чтобы на программу была установлена защита в виде привязки к идентификатору компьютера (hardwareID). Чтобы сгенерировать этот идентификатор мне необходимо получить серийный номер какой-нибудь железяки (матери, винта и т.д.). В случае с Windows эти данные выдираются с помощью WinAPI. Но программа-то у нас на Qt )) Отсюда вопрос: можно ли средствами Qt получить уникальный идентификатор компьютера? Если нет - то посоветуйте альтернативные варианты. Спасибо! Название: Re: Защита программы на Qt Отправлено: Tonal от Март 19, 2008, 11:12 Купить нормальную ключевую защиту?
Название: Re: Защита программы на Qt Отправлено: Пантер от Март 19, 2008, 12:22 А что тебе мешает использовать винапи?
Название: Re: Защита программы на Qt Отправлено: mwnuke от Март 19, 2008, 18:59 А что тебе мешает использовать винапи? Под Windows - не мешает. :)Под Linux и MaсOS - мешает отсутствие этого самого WinAPI ;D ;D До аппаратных ключей наша контора вряд ли снизойдет, так что, видимо придется писать свой кроссплатформенный класс, где использовать родные Апи операционок )) Название: Re: Защита программы на Qt Отправлено: Пантер от Март 19, 2008, 19:03 Поищи в stl, может что и накопаешь. :)
Название: Re: Защита программы на Qt Отправлено: Вячеслав от Март 19, 2008, 19:38 Вообще , если у конторы нет денег ну хотя-бы (http://www.astroma-spb.ru/ru/products/protection/ (http://www.astroma-spb.ru/ru/products/protection/) - НЕ РЕКЛАММА !), то заморачиваться с защитой - себе дороже ... Если продукт действительно востребован - поломают нафиг фсе эти привязки на раз ... Особеноо просто под пингвином ;)
Название: Re: Защита программы на Qt Отправлено: mwnuke от Март 19, 2008, 21:04 Вообще , если у конторы нет денег ну хотя-бы (http://www.astroma-spb.ru/ru/products/protection/ (http://www.astroma-spb.ru/ru/products/protection/) - НЕ РЕКЛАММА !), то заморачиваться с защитой - себе дороже ... Если продукт действительно востребован - поломают нафиг фсе эти привязки на раз ... Особеноо просто под пингвином ;) У конторы деньги есть, только делается все как правило очень и очень не скоро.Пока они это дело закупят - страшно подумать сколько времени пройдет. )) Название: Re: Защита программы на Qt Отправлено: Вячеслав от Март 19, 2008, 21:28 Хм ... А пойти по пути того-ж qcad'а ( кстати на куте написан ) ?
Название: Re: Защита программы на Qt Отправлено: mwnuke от Март 19, 2008, 21:35 Хм ... А пойти по пути того-ж qcad'а ( кстати на куте написан ) ? Просветите пожайлуста, в чем заключается этот путь?Название: Re: Защита программы на Qt Отправлено: pastor от Март 19, 2008, 22:07 Купить нормальную ключевую защиту? +1 Есть неплохию ключи, но правда под винду - http://www.guardant.ru/ Название: Re: Защита программы на Qt Отправлено: serg_hd от Июнь 14, 2010, 16:19 с момента создания темы прошло 2 года, может быть сегодня будут какие-нибудь новые интересные варианты решения данной задачи, кроме покупки и привязки к железу?
Надо поставить защиту на софтину, а связывать её с сервером не хотелось бы, зачем лишние зависимости. Интереса ради: а по какому принципу ломается простейшая защита типа вшитого пароля в саму прогу, hex-редактором или чем, может кто-нибудь в курсе? Просто интересно очень, никогда не пробовал эту нишу. И если это дело вырезается, то что мешает вырезать код синхронизации с сервером (хотя эта защита считается надёжнее чем первый вариант)? Название: Re: Защита программы на Qt Отправлено: ieroglif от Июнь 14, 2010, 18:16 мне кажется, что вопрос защиты упирается в основном не в технически детали - как привязаться к железу или к серверу, а скорее - как защитить код защиты от взлома.
мне кажется что если погуглить, то не проблемно найти классы для привязок к железу под основные ОС - линух, мак, венды. объеденить это в один Qt класс - займёт конечно время, но не сильно много. а вот как защитить код? то о чём я СЛЫШАЛ - обфускация, компрессия, выполнение какого-то динамического кода в памяти (про это интереснее всего). ничего из этого ручками не трогал - как-то не дотягивались :) так что мне кажется, что хоть для данного форума тема крайне полезна, но ответы лучше искать на других форумах (wasm.ru к примеру) Название: Re: Защита программы на Qt Отправлено: Igors от Июнь 14, 2010, 19:43 Интереса ради: а по какому принципу ломается простейшная защита типа вшитого пароля в саму прогу, hex-редактором или чем, может кто-нибудь в курсе? Просто интересно очень, никогда не пробовал эту нишу. И если это дело вырезается, то что мешает вырезать код синхронизации с сервером (хотя эта защита считается надёжнее чем первый вариант)? Уже много лет как я этим перестал заниматься, так что мои познания во взломе устарели :) Но если очень грубо/приближенно то принципы выглядят так:- нужно запустить программу в отладчике - тормознуться (breakpoint) там где проверяется защита. Сильно помогает вызов WinAPI (хороший отладчик их прекрасно отслеживает), а MacsBug - то вообще была песня. Хорошая помощь диалог типа "программа не авторизована" - ведь по стеку видно откуда пришло управление - дальше анализ проверок/if'ов и забивание их nop'ами, xor'ами. Разумеется не всегда это проходит - но в очень многих случаях - на ура. Большинство пишущих не имеют никакого понятия как строится код и лепят что-то типа Код: if (strcmp(currentCode, correctCode) != 0) А вообще гораздо интереснее писать программы чем ломать их Название: Re: Защита программы на Qt Отправлено: Sancho_s_rancho от Июнь 14, 2010, 20:18 а вот как защитить код? Знавал я одну программу, автор которой очень не хотел, чтобы ее сломали. Программа была весьма навороченной(много математики и графики, спектры там разные) и являлась штучным товаром. Так он сделал привязку к железу и модификацию кода в памяти. В результате если у пользователя летело железо, то он вынужден был обращаться к разработчику, а при работе касперского(может и некоторых других антивирусов) его программа начинала выдавать ошибки(антивирус не любит всякий самомодифицирующийся код и ставит палки в колеса). Но разработчика это устраивает, т.к. штучный товар. Если вы готовы решать головные боли пользователя и "крутой" защиты, то реализовывайте что-нибудь аналогичное.то о чём я СЛЫШАЛ - обфускация, компрессия, выполнение какого-то динамического кода в памяти (про это интереснее всего). ничего из этого ручками не трогал - как-то не дотягивались :) так что мне кажется, что хоть для данного форума тема крайне полезна, но ответы лучше искать на других форумах (wasm.ru к примеру) пи.си. конечно эту программу никто не взломал. Но не потому что крутая защита, а просто пользователей всего несколько сотен. Название: Re: Защита программы на Qt Отправлено: serg_hd от Июнь 14, 2010, 20:23 Большинство пишущих не имеют никакого понятия как строится код и лепят что-то типа да, вот поэтому и интересны детали взлома - чтобы знать чего точно не надо делать ;DКод: if (strcmp(currentCode, correctCode) != 0) Название: Re: Защита программы на Qt Отправлено: Igors от Июнь 14, 2010, 21:38 да, вот поэтому и интересны детали взлома - чтобы знать чего точно не надо делать ;D Это во многом вопрос психологии. Конечно, защита не должна быть совсем уж лоховской (как сравнение 2-х строк), но и мудрить нечего - себе дороже. Нет привязки - не беда. Привяжитесь к имени компьютера/пользователя. Да, он может его изменить и пользоваться - но это унизительно для него :) Ну а если стоит хоть какая-то сеть TCP/IP (а это так), то делать пакости взломщику легче и приятнее. Название: Re: Защита программы на Qt Отправлено: SimpleSunny от Июнь 14, 2010, 21:57 Как читал на wasm'e (возможно и не там) когда-то, оригинальный метод.
Создается 2 вида защиты, одна очень простая, вплоть до сравнения строк и легко находимая. Другая в дебрях программы. При взломе легкой защиты некоторое время ничего не делается, потом программа перестает работать. Направленно на то, что взлом программ, если мы говорим о немного специфичных, заказываются. Взломщик находит простую защиту, взламывает, получает деньги, исчезает. А пользователь, через время, начинает получать уведомления о просьбе покупки программы :) Но это всё велосипеды и лучше, как было указано выше, купить себе уже готовую защиту. Название: Re: Защита программы на Qt Отправлено: vaprele07 от Июнь 15, 2010, 02:25 if (strcmp(currentCode, correctCode) != 0)
детали взлома (поиск кода проверки): 1) брейк на память веденной строки в ключевое поле. 2) поиск кнопки с методом проверки 3) поиск вызова сообщения "введен не корректный ключ". 4) поиск вызовов работы с реестром 5) поиск по текстовым константам *user*, *password*, *license*, *key*, названиям методов *registry* Помню студнем ломал программку тестирования студней, мне понравилось как препод ее хвалил, какая она хорошая, как мощно она вопросы шифрует. Смысл в мегастойком шифровании при полной дешифрации во время исполнения ))) да еще и с ответами! А на втором курсе я сам писал подобную программку для техникумов, так там ребята не парились со взломом, они тупа отлавливали окно результата и перерисовывали оценку ))) Название: Re: Защита программы на Qt Отправлено: Wlad_C от Июнь 18, 2010, 14:40 О том, как ломать программы и как их защищать (что не следует делать) очень хорошо описано в книгах Крис Касперски. Его книг и статей очень много в Инете.
Название: Re: Защита программы на Qt Отправлено: ti0 от Декабрь 27, 2016, 00:20 Нашел интересную статью о защите Qt приложений http://sdr-labs.com/blog/zaschita_qt_prilogheniya_ot_modifikacii (http://sdr-labs.com/blog/zaschita_qt_prilogheniya_ot_modifikacii)
Название: Re: Защита программы на Qt Отправлено: Alex Custov от Декабрь 27, 2016, 00:27 Нашел интересную статью о защите Qt приложений http://sdr-labs.com/blog/zaschita_qt_prilogheniya_ot_modifikacii (http://sdr-labs.com/blog/zaschita_qt_prilogheniya_ot_modifikacii) Наврятли это защита: Цитировать Следует заметить, что данный метод работает только при непреднамеренном изменении исполняемого файла, и не защищает от взлома. такая защита обходится банальной заменой jne на je в бинарном файле, и функция checkSelfCRC() начинает возвращать true вместо false. Название: Re: Защита программы на Qt Отправлено: Bepec от Декабрь 27, 2016, 09:04 Идеальной защиты нет.
Защита программ сводится к тому, чтобы взламывать программу было дороже, чем купить её. Но и тут находятся энтузиасты. Название: Re: Защита программы на Qt Отправлено: QuJu от Май 19, 2017, 19:18 Добрый день всем,
Вопрос по смежной теме топика: Рассматривал откомпилированный файл в текстовом редакторе. И там видно все методы signal/ slot с названиями и что передается. Можно это как то скрыть от простых глаз? Название: Re: Защита программы на Qt Отправлено: kambala от Май 20, 2017, 00:29 используешь коннект старого вида через макросы или новый через указатели на методы?
Название: Re: Защита программы на Qt Отправлено: QuJu от Май 20, 2017, 00:46 используешь коннект старого вида через макросы или новый через указатели на методы? Старого видаНазвание: Re: Защита программы на Qt Отправлено: Igors от Май 20, 2017, 08:24 Старого вида Ну так ответ-то уже прозвучал :)Название: Re: Защита программы на Qt Отправлено: QuJu от Май 20, 2017, 09:14 Да, я понял. спасибо) Название: Re: Защита программы на Qt Отправлено: deMax от Май 22, 2017, 12:16 Идеальной защиты нет. Идеальная защита, это когда часть функционала находиться на сервере(при условии что сервер не ломанут).Защита программ сводится к тому, чтобы взламывать программу было дороже, чем купить её. Но и тут находятся энтузиасты. А так защита от модификации ASProtect и аналоги. Ключ продадут, id железа можно подделать, кроме сервера сложно создать хорошую защиту. |