Вобщем написал я к своей проге защиту от копирования, привязку к номеру флехи.
Бинарник ксорится серийником, и потом, при запуске расшифровывается на лету.
Интересно, а можно будет потом сломать прогу, без флешки? Ну типа брутфорс или подобное?
Если я не ошибаюсь, то SN флешки 4-х байтный.
Тут либо тупой брутфорс, либо умный брутфорс. Не зная точно алгоритма (по твоим словам - простой XOR), что ты шифруешь
(понятие бинарника очень широкое - это какие-то отдельные функции или целиком экзешник) какой критерий правильности выгоднее использовать - сразу и не скажу.
За критерий правильности SN можно взять либо расшифровку заголовка PE файла (если он зашифрован), либо известное стандартное начало некоторых секций для определенных компиляторов, либо частотное распределение символов в секции кода либо в секции релоков либо ...( вообщем достаточно много критериев)
Ну уж коль делать защиту на флешке, можно придумать что-то более серьезное, чем XOR бинарника серийным номером. Да и защиту надо строить исходя не из "снимут ли без флешки", а "как быстро снимут (снимут ли вообще) с флешкой". имхо. Ну если только не интересует разовая продажа и всё.
Ara пишет:
Ну уж коль делать защиту на флешке, можно придумать что-то более серьезное, чем XOR бинарника серийным номером
Серьезнее, это что-то типа нестандартного форматирования флешки? Я уже думал над этим - сделать свою файловую систему. Но это это вроде легко скопировать через образ флехи?
Серьезнее, это что-то типа нестандартного форматирования флешки? Я уже думал над этим - сделать свою файловую систему. Но это это вроде легко скопировать через образ флехи? жесть
наверное имелось в виду шифровать (стойким крипто, ключом на основе серийника флэшки, как в донглах) участки программы, а не своя ФС.
bloom пишет:
наверное имелось в виду шифровать (стойким крипто, ключом на основе серийника флэшки, как в донглах) участки программы, а не своя ФС.
ну это я сделал, интересно еще реализовать свою ФС на флехе, чтобы стандартными средствами нельзя было прочитать содержимое диска, а моя программа могла бы это сделать.
Можно просто записать на флешку длинный ключ, а не привязываться к SN. И зашифровать стойким крипто. Но при наличии флешки вся защита сосет.
jangle пишет:
ну это я сделал, интересно еще реализовать свою ФС на флехе, чтобы стандартными средствами нельзя было прочитать содержимое диска, а моя программа могла бы это сделать.
Gmc пишет:
А зачем? Данные и так защищены ключем и крипто.
Как дополнительная защита от копирования. Программа скачивает из флехи (с нестандартной файловой системой) дополнительные модули, картинки и т.д. Также можно сохранять количество запусков программы, ограничения по времени и т.д. Чтобы взломать программу, нужно разобраться со структурой ФС, которую можно сделать очень сложной. Обычными средствами Windows прочитать такой диск не получится, винда ругнется, что диск не отформатирован.
jangle пишет:
Как дополнительная защита от копирования.
Подозреваю что скопировать такую флешку все равно возможно.
jangle пишет:
Также можно сохранять количество запусков программы, ограничения по времени и т.д. Чтобы взломать программу, нужно разобраться со структурой ФС, которую можно сделать очень сложной.
Хорошая идея. Осталось реализовать. Есть реализация подобного аппаратно, называется донгл. Только там защита, без хранения файлов, хотя можно и несколько байт записать.
jangle пишет:
Чтобы взломать программу, нужно разобраться со структурой ФС, которую можно сделать очень сложной Нафига разбираться? Делаем дамп содержимого флешки в файл, после чего патчим прогу так, чтобы она работала с ним а не с флешкой.
jangle кароч, открываю тебе глаза на правду....
1. Достается ключ
2. Находится место где кусок расшифрован, и делается дамп этого куска в программу, на место зашифрованного
3. Удаляется все те части, которые отвечают за расшифровку (а зачем, куски то расшифрованы уже)...
И флешка остается до следующей версии программы... вот и все.
Archer пишет:
А почему нет то? Бери по секторам да читай.
Интересно, а какие могут быть сектора на неформатированной USB флешке?
Форматирование - это процесс создание логической структуры диска, в процессе которой и создаются сектора.
Во, взять флешку на 4 гига, записать туда нужную инфу в перемешку с хламом =) Это вам не дамп донгла Эмулятор флешки будет размером с ДВД, по инету проблематично пересылать будет
Gmc пишет:
Тогда уж не в файл а в образ диска наподобие daemon tools, а то круто слишком патчить придется. Да хули там патчить. Ищем вызов CreateFile('\\.\physycaldriveX и патчим имя на файл с дампом.
jangle, а если не секрет, сколько стоит твоя прога? Есть ли смысл использовать аппартный ключ (в твоем случае флешку) стоимостью 5-10 баксов для программы стоимостью в 10-15?
Gmc пишет:
а что из себя представляет файл с дампом? Содержимое флешки прочитаное в RAW режиме. Собственно это самая низкоуровневая информация какую только может получить программа без использования специальных драйверов.