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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Если не секрет, как мерял?! И еще: 26.01.02 08:27  Число просмотров: 1007
Автор: z0 <z0> Статус: Member
<"чистая" ссылка>
> Что официально НИЗЗЯ это понятно, но должно же быть в
> мастдайцах где-то горлышко, через к-рое проходят все
> обращения к IDE-устройствам в терминах кластеров.

да есть конечно они - горлышки такие
но ты зацени трудозатраты
возьмем например наверняка тебе известный VIA 4in1
кроме всего прочего там есть дисковый драйвер
смотри как 4in1 работает - определяет точно OS и точно зная куда и как воткнуться - втыкается вместо родного дискового драйвера
чуть что СЛЕГКА новое от микрософта - писец - все ждут обновления для 4in1
оно тебе надо?

И второй
> вопрос: можно ли каким нить кривым способом прыгать из Р3 в
> Р0 в длл или ехе? А то, если писать свой ВеЭксДишник, он
> будет ма-а-аленкий, его легко будет найти и оттрейсить.

можно и VXD и вручную прямо из проги - для чикаги
для NT - только через *.SYS

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

кстати такие прыжки в принципе не трейсятся ни каким отладчиком чтоб ты знал
<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




Rambler's Top100
Рейтинг@Mail.ru


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