информационная безопасность
без паники и всерьез
 подробно о проекте
Атака на InternetSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Мощные индийские ключи 
 Срочные патчи для критических уязвимостей... 
 Очередной рекордный патч Microsoft 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Я бы вот что посоветовал 20.01.02 00:34  Число просмотров: 1274
Автор: 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-ов... В итоге, продукт будет просто мертвым.
<programming>
[Win32] Низкоуровневый доступ к сидюку? 18.01.02 09:01  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
Начальство требует организовать защиту сидюка от пиратского копирования (типа "царапины", "скрытого трека" и т.п.), чтобы его нельзя было передрать граббером. Или дать аргументированное обоснование невозможности или безсмысленности этого дела. Подскажите, где найти более-менее концентрированный ресурс на эту тему?
[Win32] Низкоуровневый доступ к сидюку? 19.01.02 05:19  
Автор: push Статус: Незарегистрированный пользователь
<"чистая" ссылка>
На ixbt лежали факи по записи на CDR, там все было очень подробно расписано.
[Win32] Низкоуровневый доступ к сидюку? 24.01.02 03:25  
Автор: push Статус: Незарегистрированный пользователь
<"чистая" ссылка>
прошу прощения, я дал линк неверный

http://3dnews.ru/reviews/storage/cd-copy/index.htm
пустая трата времени, 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

если тебе интересно как я делал для чикаги - намыль - кину какие-нибудь исходники или принцип объясню - там все достаточно несложно

кстати такие прыжки в принципе не трейсятся ни каким отладчиком чтоб ты знал
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach