Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |  |  |  |
Беда в том,что 19.01.02 06:39 Число просмотров: 1030
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
мне надо защищать не столько прогу, сколько данные для нее. Конечно, прога их декриптует, но она будет одна, а дисков с данными - много. Теперь вот, что: Есть ли эмуль, к-рый имитирует регистры IDE? Если есть, то защита невозможна, иначе, пока возможна.
|
|
<programming>
|
[Win32] Низкоуровневый доступ к сидюку? 18.01.02 09:01
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
Начальство требует организовать защиту сидюка от пиратского копирования (типа "царапины", "скрытого трека" и т.п.), чтобы его нельзя было передрать граббером. Или дать аргументированное обоснование невозможности или безсмысленности этого дела. Подскажите, где найти более-менее концентрированный ресурс на эту тему?
|
 |
[Win32] Низкоуровневый доступ к сидюку? 19.01.02 05:19
Автор: push Статус: Незарегистрированный пользователь
|
|
На ixbt лежали факи по записи на CDR, там все было очень подробно расписано.
|
 |
пустая трата времени, imho 18.01.02 14:22
Автор: ukv Статус: Незарегистрированный пользователь
|
> Начальство требует организовать защиту сидюка от пиратского > копирования (типа "царапины", "скрытого трека" и т.п.), > чтобы его нельзя было передрать граббером. Или дать > аргументированное обоснование невозможности или > безсмысленности этого дела. Подскажите, где найти > более-менее концентрированный ресурс на эту тему?
Есть у меня идея написать статью на эту тему. Если я ее когда-нибудь напишу, то
основные ее положения будут такие:
Тезис 1: идеальная защита от копирования чисто программными методами невозможна.
Тезис 2: на разработку защиты уходит времени больше, чем на взлом.
Защита CD в любом виде я отношу именно к программным методам (устройство стандартное, вся хитрость - в сочетании документированных функций работы с ним).
Код программы идентификации полностью скрыть невозможно (как-то он ведь должен работать?). Надежность этого метода ограничена степенью защиты этого кода, а при определенном навыке взламывается это дело быстрее, чем разрабатывается. Резюме: какую-то защиту сделать можно, но тратить на это слишком много времени не следует - велик шанс, что это будет впустую потраченное время.
К более надежным методам защиты я бы отнес защиту данных, а не защиту кода. Правда, это неприменимо к защите CD - для реализации этой идеи нужна как минимум заглушка на LPT. Ее функцией должна быть вычисление какой-нибудь функции, которая используется в программе при преобразовани данных. Взлом такой системы - это уже задача на взлом черного ящика.
|
 |  |
А если так: 18.01.02 14:43
Автор: Zef <Alloo Zef> Статус: Elderman
|
"Скрытый трек" - это не программный способ, а физический. Граббер скопирует только ту часть диска, к-рую увидит, а чтобы прочитать трек "за пределами заявленного пространства" нужно знать, что он там есть, отловить факт прямого обращения к драйву и понять, как и зачем это делается довольно трудно. Другое дело, удастся ли позиционировать туда бошку?
Второй путь: на диске отштамповать некое подобие линзы, тогда при наезде на эту область драйв выдаст "ошибку фокусировки", а если диск грабленый - "ошибку чтения". Другое дело, что я не понял пока, возникает эта ошибка всегда, когда не возможно сфокусироваться, или только в режиме тестирования?
|
 |  |  |
Мнение 18.01.02 15:16
Автор: DamNet <Denis Amelin> Статус: Elderman
|
Предыстория:
Есть некий комп. клуб.....ставили мы туда ЛИЦЕНЬЗИОННЫЕ Red Alert2,
Need For Speed3 etc............Так вот, ни @#$а ничего на вертуалку не перекидывалось......потом мой друг обратился к друзьям и ужа на следующтй день он принёс другую виртуалку, которая просто копирует сидюк по другому алгоритму.................и как бы всё теперь работает
Вывод таков...........есть тока один вариант.........сделать защиту как у игры Казаки от Руссобит-М..........Там код генерится в процессе работы программы.........
|
 |  |  |  |
тоже не вариант 18.01.02 15:39
Автор: ukv Статус: Незарегистрированный пользователь
|
> Вывод таков...........есть тока один > вариант.........сделать защиту как у игры Казаки от > Руссобит-М..........Там код генерится в процессе работы > программы.........
Блин, могу открытым текстом, если не до всех доходит. Star-force - неплохая защита. Ее можно использовать, но при этом помнить: ОНА ЛОМАЕТСЯ, как и все прочие подобные защиты.
|
 |  |  |  |  |
тоже не вариант 18.01.02 15:56
Автор: DamNet <Denis Amelin> Статус: Elderman
|
|
Что-то я не слышал то, что-бы кто-то казаков от диска отучил.................................
|
 |  |  |  |  |  |
Вчера видел пиратский диск 19.01.02 23:57
Автор: leo <Леонид Юрьев> Статус: Elderman
|
|
|
 |  |  |  |  |  |
Беда в том,что 19.01.02 06:39
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
мне надо защищать не столько прогу, сколько данные для нее. Конечно, прога их декриптует, но она будет одна, а дисков с данными - много. Теперь вот, что: Есть ли эмуль, к-рый имитирует регистры IDE? Если есть, то защита невозможна, иначе, пока возможна.
|
 |  |  |  |  |  |  |
Я бы вот что посоветовал 20.01.02 00:34
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Сколько будет продано копий вашего продукта? Ну кажем 1000-10000, навряд ли больше.
Идея в следующем:
0) Используем заглушку LPT или USB в которую можно записать серийный номер и ключ (~256 бит);
1) Данные для диске шифруем блочным шифром с помощью "мастер-ключа-диска". Такой ключ свой для каждого диска;
2) Генерируем много "ключей-лицензий", по одному на каждую лицензию к ПО. Эти ключи генерируются один раз;
3) "Мастер-ключ-диска" диска шифруем каждым "ключем-лицензией", и полученную таблицу записываем на диск;
4) "Ключ-лизензию" записываем в заглушку, которую даем пользователю;
Код, производящий извлечение ключа из заглушки и расшифровку данных с диска, нужно хорошо спрятать. Либо использовать заглушку, которая производит расшифровку внутри, без чтения ключа (по USB).
Если необходимо иметь лицензии только на какое-то подмножество дисков, то вводим понятие "Options key", который является битовой маской разрешенных дисков, зашифрованной ключом-лицензией.
Это по сути, DVD-схема шифрования, которая была "взломана" только когда из ПО был извлечен один из "ключей-лицензий".
Если использовать стойкие блочные шифры (AES/Rindjael, RC6) и производить расшифровку внутри "заглушки", то эту схему практически невозможно взломать.
Защищать диски на буквальном уровне "защиты от копирования" - тупиковый вариант, всегда и гарантированно можно взломать. Если к тому же дойти до "IDE регистров", то добавится масса проблем с переносимостью и совместимостью, отпадут все новые IDE и все SCSI CD-ROMы, также отпадут NT/W2K/XP. Не говоря о разработке, вылавливании bug-ов... В итоге, продукт будет просто мертвым.
|
 |  |  |  |  |  |  |  |
это уже лучше, но все равно уязвимо 21.01.02 11:03
Автор: ukv Статус: Незарегистрированный пользователь
|
У схемы с шифрованием исходных данных есть слабое место - теоретически можно купить экземпляр программы, написать самому программку расшифровки, расшифровать все имеющиеся там данные с использованием родного ключа, а дальше полная свобода. Можно даже зашифровать данные своим ключом и тиражировать комбинацию оригинальный софт + свой ключ + зашифрованные им данные - внешне фиг отличить от оригинального продукта.
Еще лучше схема с шифрованием пользовательских данных - они ведь могут быть какими угодно, и тогда без взлома самого ключа обойтись еще сложнее.
Что делать в случае, если защищаемый продукт представляет большую базу данных, и пользовательским данным в ней вроде делать нечего? Как-то надо пропускать через шифратор пользовательские запросы на поиск данных. Правда, я так быстро не могу придумать, как это организовать технически.
|
 |  |  |  |  |  |  |
Беда в том,что 19.01.02 19:37
Автор: z0 <z0> Статус: Member
|
> мне надо защищать не столько прогу, сколько данные для нее. > Конечно, прога их декриптует, но она будет одна, а дисков с > данными - много. Теперь вот, что: Есть ли эмуль, к-рый > имитирует регистры IDE? Если есть, то защита невозможна, > иначе, пока возможна.
вот видишь - ты сам и ответил на свой вопрос
или у тебя свой драйвер сиди + проблемы совместимости или тебя эмулируют на уровне системного драйвера
так и доложи начальству - пусть посчитает что дешевле
|
 |  |  |  |  |  |  |  |
Это очевидно, да начальство ХАСПа не приемлет. А вот: 23.01.02 11:25
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
я так понял, что в "Казаках" прога анализирует динамику движения бошки при поиске и сравнивает ее с типовой динамикой СD & харда? Так?
|
 |  |  |  |  |  |  |  |  |
Вряд ли 23.01.02 14:05
Автор: ukv Статус: Незарегистрированный пользователь
|
> я так понял, что в "Казаках" прога анализирует динамику > движения бошки при поиске и сравнивает ее с типовой > динамикой СD & харда? Так?
Эту часть кода я не анализировал. Но факты таковы:
- Казаки версии 1.15 шли под эмулятором
- более поздние версии под эмулятором не работают, хотя внешне защита изменилась мало
- во всех версиях защита контролирует время выполнения отдельных операций
Я бы не удивился, что для защиты носителя используются суб-коды, а слишком быстрая работа устройства трактуется в последних версиях как эмулятор CD. Правда, тогда теоретически должен остаться вариант копирования 1:1 на болванку (кстати, starforce выпускает вариант защиты малых партий дисков на CD-R).
|
 |  |  |  |  |  |  |  |  |
может быть и так 23.01.02 12:28
Автор: z0 <z0> Статус: Member
|
> я так понял, что в "Казаках" прога анализирует динамику > движения бошки при поиске и сравнивает ее с типовой > динамикой СD & харда? Так?
очень слегка смотрел эту protect.dll
мне показалось что речь идет о записи и последующем считавании методом DAO RAW
во всяком случае моя ямаха скази не запускает фирменный диск казаков поскольку нет такого режима вообще а тик отлично запускает под вин98 а на 2к - ни фига
|
 |  |  |  |  |  |  |  |  |  |
[Win32] В связи с вышеизложенным: 25.01.02 04:03
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
Каким образом можно (и можно ли) организовать из Ring3 прямой поиск и чтение секторов IDE-диска через API или регистры?
|
 |  |  |  |  |  |  |  |  |  |  |
[Win32] В связи с вышеизложенным: 25.01.02 06:58
Автор: z0 <z0> Статус: Member Отредактировано 25.01.02 08:00 Количество правок: 1
|
> Каким образом можно (и можно ли) организовать из Ring3 > прямой поиск и чтение секторов IDE-диска через API или > регистры?
я тебе точно скажу про регистры - никак
сам такое делал (прога измеряла скорость считывания сидюка) и приходилось скакать с PL3 на PL0 и обратно
это под чикагой естественно
под нт вообре речи нет - там просто НЕЛЬЗЯ
API такого не видел ни разу и не слышал
PS: кстати понятно почему нельзя/нету - системный дисковый кеш монополизирует. как ты будешь с ним синхронизироваться?
|
 |  |  |  |  |  |  |  |  |  |  |  |
[Win32] Если не секрет, как мерял?! И еще: 25.01.02 07:45
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
Что официально НИЗЗЯ это понятно, но должно же быть в мастдайцах где-то горлышко, через к-рое проходят все обращения к IDE-устройствам в терминах кластеров. И второй вопрос: можно ли каким нить кривым способом прыгать из Р3 в Р0 в длл или ехе? А то, если писать свой ВеЭксДишник, он будет ма-а-аленкий, его легко будет найти и оттрейсить.
|
 |  |  |  |  |  |  |  |  |  |  |  |  |
[Win32] Если не секрет, как мерял?! И еще: 26.01.02 08:27
Автор: z0 <z0> Статус: Member
|
> Что официально НИЗЗЯ это понятно, но должно же быть в > мастдайцах где-то горлышко, через к-рое проходят все > обращения к IDE-устройствам в терминах кластеров.
да есть конечно они - горлышки такие
но ты зацени трудозатраты
возьмем например наверняка тебе известный VIA 4in1
кроме всего прочего там есть дисковый драйвер
смотри как 4in1 работает - определяет точно OS и точно зная куда и как воткнуться - втыкается вместо родного дискового драйвера
чуть что СЛЕГКА новое от микрософта - писец - все ждут обновления для 4in1
оно тебе надо?
И второй
> вопрос: можно ли каким нить кривым способом прыгать из Р3 в > Р0 в длл или ехе? А то, если писать свой ВеЭксДишник, он > будет ма-а-аленкий, его легко будет найти и оттрейсить.
можно и VXD и вручную прямо из проги - для чикаги
для NT - только через *.SYS
если тебе интересно как я делал для чикаги - намыль - кину какие-нибудь исходники или принцип объясню - там все достаточно несложно
кстати такие прыжки в принципе не трейсятся ни каким отладчиком чтоб ты знал
|
|
|