Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как защитить программу с помощью ключа, Помогизащитить программу с помощью ключа 
V
    Опции темы
Zakhar_Shan
Дата 5.4.2009, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 14.6.2007
Где: Тюмень

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



Цитата(xvr @  5.4.2009,  22:32 Найти цитируемый пост)
римерчик будет ОЧЕНЬ объемный.

так во и дело в том, что хочется не много, но и не сильно просто, но в любом случае спасибо smile 
PM MAIL   Вверх
Gradov
Дата 5.4.2009, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(xvr @  5.4.2009,  21:20 Найти цитируемый пост)
 Собрать данные через WMI Вычислить MD5 (или SHA1) от них Закриптовать RSA Записать в реестр

Пункты 1 и 2 понятны, а вот c помощью RSA, что закрывать? Сам хеш md5? Если да, то зачем, непонятно... По-моему для такой небольшой задачи одного md5 вполне хватит. Хотя кашу маслом не испортишь, конечно...

А вообще я не понимаю какой во всем этом смысл? Ну собрал идентификационные данные компа, взял хеш, закриптил RSA и запихнул в файл. Далее при запуске проги считываются данные компа, берется хеш, декриптуется по RSA и тут мы подходим к самому главному - конечному условию проверки на совпадение/несовпадение ключей. Обычно условный переход (jnz, je, ...). Исправляем в проге пару байтов и все. К чему все эти MD5, RSA? Может я чего то не понимаю объясните, плиз.

Это сообщение отредактировал(а) Gradov - 5.4.2009, 23:52
PM MAIL   Вверх
Anikmar
Дата 6.4.2009, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 34
Всего: 59



Цитата(Gradov @  5.4.2009,  23:45 Найти цитируемый пост)
Исправляем в проге пару байтов и все.

Эти пару байтов надо найти. Закрываемая программа не такая уж важная, чтобы ею занимался опытный хакер. Сломать ее можно, но потребует некоторого времени.
Цитата(Gradov @  5.4.2009,  23:45 Найти цитируемый пост)
Обычно условный переход (jnz, je, ...)

Если не брать мудреные способы типа динамического изменения кода и т.п. проверку можно тупо размножить в нескольких местах программы. Это повергнет любого хакера в уныние - иное дело ломать фотошоп и другое - студенческую программку.

Профессиональных угонщиков автомашин больше всего бесят встраиваемые вручную хозяевами "секретки" - типа размыкателей масс. С одной стороны - никакой элетроники, обычный тумблер. С другой стороны - попробуй его найди.
PM MAIL ICQ   Вверх
xvr
Дата 6.4.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Gradov @ 5.4.2009,  23:45)
Цитата(xvr @  5.4.2009,  21:20 Найти цитируемый пост)
 Собрать данные через WMI Вычислить MD5 (или SHA1) от них Закриптовать RSA Записать в реестр

Пункты 1 и 2 понятны, а вот c помощью RSA, что закрывать? Сам хеш md5? Если да, то зачем, непонятно... По-моему для такой небольшой задачи одного md5 вполне хватит. 

RSA нужен для того, что бы даже имея программу и зная, как она считает этот MD5 было невозможно сгенерить правильный ключ. Для генерации ключа понадобится инсталятор, доступа к которому у студентов не будет. Так что только ломать сам код, но от этого уже не защититься, можно только усложнить жизнь хакеру, понаставив побольше проверок (и разных)

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


Шустрый
*


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

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



я так к серийнику диска С, привязывал. хешировал по всякому с разными прибавками, но без шифровки в реестре. хорошая мысль. нужно будет добавить.
PM MAIL   Вверх
Zakhar_Shan
Дата 6.4.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 14.6.2007
Где: Тюмень

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



Цитата(3315720 @  6.4.2009,  12:33 Найти цитируемый пост)
я так к серийнику диска С, привязывал. 


говорят проблеммы с sata дисками....
PM MAIL   Вверх
xvr
Дата 6.4.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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


Шустрый
*


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

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



Цитата(Zakhar_Shan @ 6.4.2009,  13:33)
Цитата(3315720 @  6.4.2009,  12:33 Найти цитируемый пост)
я так к серийнику диска С, привязывал. 


говорят проблеммы с sata дисками....

брал серийник и привязывал. в семплах даже пример есть. всю инфу о дисках выдаёт. о хардах, сд, флеш. там и серийник есть.
просто это логично- куда поставил туда и привязал, вместо того чтобы спрашивать разрешения у разработчика поменять видеокарту или сдшник добавить. как это практикуют некоторые, например тот же фотошоп. 
с обычным sata проблем не возникало, с raid включением не сталкивался... 
PM MAIL   Вверх
Zakhar_Shan
Дата 6.4.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 14.6.2007
Где: Тюмень

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



Цитата(3315720 @  6.4.2009,  14:45 Найти цитируемый пост)
. в семплах даже пример есть. 

А можно посмотреть?
PM MAIL   Вверх
3315720
Дата 6.4.2009, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Посмотри

Присоединённый файл ( Кол-во скачиваний: 40 )
Присоединённый файл  driveinfo.rar 19,50 Kb
PM MAIL   Вверх
Zakhar_Shan
Дата 6.4.2009, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 14.6.2007
Где: Тюмень

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



Цитата(3315720 @  6.4.2009,  19:35 Найти цитируемый пост)
Посмотри

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  driveinfo.rar 19,50 Kb



Ну чьо сказать, круто блинsmile  smile 

Это сообщение отредактировал(а) Zakhar_Shan - 6.4.2009, 20:22
PM MAIL   Вверх
Gradov
Дата 7.4.2009, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Anikmar @  6.4.2009,  08:34 Найти цитируемый пост)
Если не брать мудреные способы типа динамического изменения кода и т.п. проверку можно тупо размножить в нескольких местах программы.

С этим полностью согласен. Усложнить можно и естественно нужно.

Цитата(xvr @  6.4.2009,  10:24 Найти цитируемый пост)
RSA нужен для того, что бы даже имея программу и зная, как она считает этот MD5 было невозможно сгенерить правильный ключ.

Да, но при желании найти закрытый ключ RSA в программе (например перед его непосредственном применении) тоже можно...  smile 
Да и для того чтобы подсунуть ключ, зная известный алгоритм md5 надо еще знать точно какие данные хешируются, а это не легче чем найти и изменить пару байтов в программе на 100%.  smile  Так что по-прежнему уверен, что для такой программы md5 будет вполне достаточно.


PM MAIL   Вверх
xvr
Дата 7.4.2009, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Gradov @ 7.4.2009,  07:46)
Цитата(xvr @  6.4.2009,  10:24 Найти цитируемый пост)
RSA нужен для того, что бы даже имея программу и зная, как она считает этот MD5 было невозможно сгенерить правильный ключ.

Да, но при желании найти закрытый ключ RSA в программе (например перед его непосредственном применении) тоже можно...  smile 

Угу, но все равно придется ковырять бинарник
Цитата

Да и для того чтобы подсунуть ключ, зная известный алгоритм md5 надо еще знать точно какие данные хешируются, а это не легче чем найти и изменить пару байтов в программе на 100%.  smile  
Можно просто найти исходник, например здесь  smile 
Цитата

Так что по-прежнему уверен, что для такой программы md5 будет вполне достаточно.
Если использовать какую нибудь отдельную реализацию RSA (например в уже упомянутом пакете rsaeuro), то цена этого дополнительного шага - 1 вызов функции, мне кажется это немного за дополнительную защиту.

PM MAIL   Вверх
1000000dollars
Дата 7.4.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Выносим важную часть кода в Dll, шифруем её преподским ключом через RC4(например). Подключаем в качестве ресурса в исполняемый модуль. После запуска просим ключик, расшифровываем ресурс во временный файл. Пытаемся загрузить dll. Далее - зависит от фантазии.

Сделать это несложно, а ломать - сдохнешь smile

Остальные предложенные варианты нормальный третьекурсник (ориентируюсь на себя и своих универских знакомых) заломает за два часа.
PM MAIL   Вверх
xvr
Дата 7.4.2009, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(1000000dollars @ 7.4.2009,  11:47)
Выносим важную часть кода в Dll, шифруем её преподским ключом через RC4(например). Подключаем в качестве ресурса в исполняемый модуль. После запуска просим ключик, расшифровываем ресурс во временный файл. 

После чего студент копирует себе эту расшифрованную dll и меняет в исходном exe имя dll для расшифровки. Свежедернутую dll кладет рядом с exe'ником
Цитата

Сделать это несложно, а ломать - сдохнешь smile
Минут 5 приблизительно  smile 
Цитата

Остальные предложенные варианты нормальный третьекурсник (ориентируюсь на себя и своих универских знакомых) заломает за два часа.
Неа, мой вариант потребует немного больше времени (за пару дней справятся  smile )

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




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


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

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