Защитить СД диск от опирования
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        


«««1234

Защитить СД диск от опирования Expand / Collapse
Автор
Сообщение
03.10.2005 19:13
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 16.04.2007 21:00
Сообщ.: 66, Visits: 754
Я, конечно, не самый умный на форуме, но
Все-таки и правда пора подытожить.
1. Защита программно.
Нет никаких проблем, написать программу, которая не даст копировать файлы с Вашего диска. Она просто просматривает все процессы в системе и, обнаружив копирование, прекращает его. Она может вообще запретить доступ к вашему диску, если не введен номер лицензии. НО!
Кто же заставит пользователя запустить эту программу в его компьютере? Ведь когда пользователь вставил диск и открыл его в окне - программа не запустится (AutoRun можно отключить), и он свободно тянет Ваши файлы в нужную ему директорию. Можно и вообще не открывать окно с этим диском, а запустив command написать команду copy f:\*.* d:\disk\. Системной команде copy абсолютно все равно, чьи файлы она копирует и даже какие. Она благополучно скопирует и Ваши картинки и секретную программу защиты. Команде diskcopy и любым программам поадресного копирования вообще все равно, они даже к файловой системе не обращаются.
Microsoft мог бы заставить свои копирующие утилиты проверять диск, и если на нем есть, ну скажем файл "nocopy", не делать копию. Но всегда можно написать свои программы копирования. Ведь невозможно запретить процессору выполнять асемблерные команды push и mov.
Программный способ один! Сажаем на продажу гипнотизера и он программирует пользователя. "На диске вирус... атипичной пневмании, активизируется при копировании". А лучше пару телесеансов Кашпировского - "Не укради", а заодно и "Не убий".

2. Механическая защита.
Предположим, добавили в хвост файла несколько Mb хлама и файл не потерял работоспособности (Это зависит от типа файла и программы с ним работающей. Ведь внутри файла может быть описана и его структура и длина. А программа может проверять файл, перед тем, как работать с ним).
Записали файл на диск и поцарапали его хвост. Теперь конечно, copy выдаст сообщение о поврежденном файле. А вот большинство программ поадресного копирования просто заменят "Ваш хлам", который не свогут прочесть - на "свой", сохранив работоспособность файла. Ведь этим программам важно только соответствие форматов исходного Source диска и диска Target. На этом видимо и играют производители нестандартных дисков говоря, что их нельзя скопировать. Однако, на каждом их диске будет рекламная информация, как эти диски купить, чтобы защитить Вашы файлы. А купив - копируй на здоровье и чужие.

3. Что же делают программы, обещающие защиту, но ничего не делающие! Напрасно Вы так на них. Они прекрасно справляются с главной своей задачей. Увеличивают посещаемость сайта, а значит и показы рекламы.

4. Что делать?
Ну допустим, программу-то можно защитить. Чтобы ей пользоваться ее нужно, как минимум, запустить! А она уже проверит, откуда запущена, в каком компьютере, есть ли лицензия и т.п. А что делать с музыкой, видео, графикой?
Пусть даже Вам удалось как-то запретить копирование?!
Но ведь пользователь, купивший диск может слушать/смотреть, а из программы проигрывания/просмотра всегда можно сделать Save as.
Есть выход. Вашы файлы портим, например заменив первую сотню байт на текст "Не надо копировать! Проше купить!.... ". Разумеется оригинальную информацию из этих байтов нужно сохранить(она понадобится программе восстановления), предположим добавив к концу файла. Главное, о том как Вы кодируете(портите) файлы, кроме Вас должна знать только программа восстановления - она же программа проигрывания/просмотра.
Запускаясь она просит S/N и сверяет введенный с Volume Serial Number. Можно даже не шифровать(Максимум двое из сотни Ваших клиентов слышали о Volume Serial Number, один из сотни таких спецов сумеет его прочесть, а уж догадаться, что именно эти буковки и надо вписать при старте...)
Итак, если номер не тот, программа пишет текст "Здравствуй дорогой, а не пошел бы ты..." и... сама идет вместе с ним... к выходу. А если все правильно - проигрывает/показывает файл, предварительно его восстановив, внутри своего собственного интерфейса, конечно, не имеющего меню Save as.
Для графических файлов существует правда еще дыра. Возможность сделать копию экрана(нажав клавишу Print Screen) или копию текущего окна(Alt+Print Screen), затем вставив и сохранив в любой стандартной программе работы с графикой. Здесь утешает только одно, полученное изображение будет иметь разрешение и размер экрана компьютера, т.е. сделать из него хорошего качества плакат не получится.
Сообщ. #881918
04.10.2005 9:44


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.03.2008 15:26
Сообщ.: 701, Visits: 7 028
Итак, если номер не тот, программа пишет текст "Здравствуй дорогой, а не пошел бы ты..." и... сама идет вместе с ним... к выходу. А если все правильно - проигрывает/показывает файл, предварительно его восстановив, внутри своего собственного интерфейса, конечно, не имеющего меню Save as.


Давным давно известно, что хакеры ставят в точку проверки "тот или не тот номер" команду безусловного перехода jmp и спокойно идут не к выходу,
а в правильном направлении. Всего пару измененных байт и защиты как не бывало.
Учите матчасть!
Сообщ. #881944
04.10.2005 12:07
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 16.04.2007 21:00
Сообщ.: 66, Visits: 754
Silver и все, кто учил мат.часть.
Подскажите способ ветвления без точки проверки.
Может есть способ отделить лицензированного пользователя от остальных без ветвления?
Сообщ. #881961
04.10.2005 12:48
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 30.10.2005 20:54
Сообщ.: 13, Visits: 144
Может быть быть можно-нужно ворспользоваться имеями современной стеганографии? В отличие от криптографии тут сообщения (ключ, важная инфа) вообще не должно быть видно, не должны обнаруживаться. То есть, ключ можно спрятать в музыкальный или графический файл или текстовый файл (даже для ДОС), его не будет видно. Создается такой невидимый Watermark, который потом обнаруживается, восстанавливается - со всеми последствиями. Это служит (и) маркой копирайта.
Сообщ. #881965
04.10.2005 13:15


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.03.2008 15:26
Сообщ.: 701, Visits: 7 028
Мне кажется в данном случае (без ветвления) нужно использовать
следующую схему. Последовательно вычислить несколько значений:
1. Читать Volume Disk и формировать некое число.
2. Вычислить CRC исполняемого файла.
3. Определить наличие-отсутствие средств отладки (типа SoftIce) и от результата этой проверки сформировать то или иное число.
4. Вычислить время исполнения тестового фрагмента кода (для определения работы под отладчиком) и по данным скорости процессора сделать вывод о запуске под отладчиком. Только не логическое значение, а числовое. Например время_исполнения/скорость_процессора = Х. Если значение превышает пороговое, то запустить тест несколько раз (на случай задержки по вине ОС). Если хакер обойдет в этом месте ветвление, то на выходе он получит неверное значение Х!
5. Можно еще придумать несколько контрольных цифр...

Последовательно от этих контрольных чисел рассчитывается значение ключа,
которым зашифрованы данные (в общем случае).
Сообщ. #881969
04.10.2005 13:19


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.03.2008 15:26
Сообщ.: 701, Visits: 7 028
Ну разумеется, что
время_исполнения/скорость_процессора = Х.

число весьма приблизительное. Думаю стоит просто использовать порядок числа.
Скажем 9...12 это нормально значение, а 85...100 уже нет.
Сообщ. #881970
04.10.2005 14:02
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 16.04.2007 21:00
Сообщ.: 66, Visits: 754
Вот опять "Если"! А если есть "Если" - значит опять точка проверки и опять возможность ее обойти. Обойти уже ту проверку, где сравниваются скорости или контрольные суммы.
Не надо мудрить! Вскрыть могут любую защиту, поэтому степень ее сложности должна соответствовать требуемым условиям.
Если Ваша программа ЖИЗНЕННО НЕОБХОДИМА в КАЖДОМ КОМПЬЮТРЕ и печатать будете МИЛЛИОННЫМИ тиражами - стоит разрабатывать что-то сложное.
А если имеете пару сотен потенциальных заказчиков и продадите им программу втечении месяца - пусть кто-то из них заплатит хакеру за работу и дальше ищет, кому бы продать копии.
Сообщ. #881975
04.10.2005 14:41