Важная информация

User Tag List

Показано с 1 по 5 из 5

Тема: Вектор-06Ц, защита от копирования на дискетах.

  1. #1
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вектор-06Ц, защита от копирования на дискетах.

    Обсуждались разные защиты при загрузке с магнитофона, но не нашел темы про защиту программ на дискетах.

    Уже не помню, что это была за программа, но с её помощью я узнал, что мой (венгерский) дисковод собран "криво".
    После запуска программы, головки дисковода "бежали" за пределы 80-ой дорожки, после чего, программа запускалась.
    Это явно намекало, что за пределами рабочих дорожек записано нечто, сообщающее программе о её легальности на данной дискете.

    На моём дисководе (как выяснилось позднее), головки добегали до 81-ой дорожки, ударялись о выпирающую шайбу крепления чего-то там, и отскакивали на предыдущую дорожку. В результате эта защищённая программа просто зависала, через некоторое время дисковод (вроде бы) останавливался, и на этом "кино заканчивалось".

    Я конечно в своём дисководе, подпилил эту шайбу, и головки перестали от неё отскакивать, программа стала запускаться.

    Кто помнит, что за программы защищались от копирования записью защиты на дорожках после 80-ой ?
    И кто помнит, какие ещё были защиты на дискетах, а может и сам какие-то защиты делал для дисковых программ ?

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Master Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    975
    Спасибо Благодарностей отдано 
    429
    Спасибо Благодарностей получено 
    396
    Поблагодарили
    221 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я слышал про этот метод защиты, т.н. запись в "инженерные цилиндры" дискеты, но только на ПК. Скорее всего на Векторе повторили идею.

  4. #3
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Расскажу, про защиту от копирования, которую я делал для своей программы в начале 90-ых.
    Поскольку это была защита на дискету, да ещё и для Вектора, практического интереса она конечно уже не представляет.
    Да и защитами программ, за прошедшие с тех пор почти 30 лет, я больше не занимался и не интересовался.

    В идее написать защиту сплелись интерес изучить запись/чтение дискет и некоторая обида, на то что я ещё не дописал программу, а её бета-версия уже появилась в прайсе какого-то "центра", в городе, который я даже на карте не сразу найду.
    Доверия к бета-тестерам в тот момент стало значительно меньше.

    Итак.

    Скрытый текст


    Что я знал приступая к разработке защиты, это то, что уже есть программы копировщики дискет, которые используя команды "Чтение дорожки" и "Запись дорожки" спокойно клонируют дискеты, и с этим что-то нужно было делать.
    Уже столкнувшись с защитой программы, которая гоняла головки на дорожки дискеты за 80-ую, я прикинул, что это слишком очевидное проявление. Значит защита должна проверяться не заметно. Самое простое, записать метку на 8-ю дорожку, туда где хранится директорий дискеты, и проверять метку именно при чтении каталога дискеты.
    Соответственно, проверка защиты не должна находиться в начале программы (где её легко найти), и срабатывать защита должна не сразу после проверки, а эффект должен быть "отложенным".
    Изучая чтение с дискеты, обратил внимание, что сектор на дискете 1КБ, и он читается за один раз в буфер ДОСа, а потом выдаётся блоками по 128 Байт. А так-же обратил внимание, что при копировании файла штатными средствами, копируется в новый файл столько блоков (по 128Байт), сколько их указано в записи директория дискеты.
    Вывод напрашивался сам, поместил подпрограмму проверки и обслуживающие её алгоритмы в конец файла, а после записи программы на "защищенную" дискету, уменьшал количество блоков программы. Это делала специальная утилита, которая ставила метку на дискету и записывала саму программу на дискету.
    В результате, если просто штатными средствами скопировать программу на КвазиДиск или другую дискету, то программа копируется не полностью, и её запуск в таком виде приводил к сбою ДОС.
    Если же программа запускалась с родной дискеты, то в памяти Вектора был тот не достающий кусок, где он был и как я его подтягивал, я уже не помню.
    Это был первый уровень защиты, как я извращался, что-бы спрятать обращение к подпрограмме проверки метки и кодировал саму подпрограмму, подробностей уже не помню. Помню, что обращение прятал глубоко в стек, и в явном виде адрес начала подпрограммы в ассемблерном тексте не был виден. И первоначально как-то модифицированный код, просто так не дизассемблировался.
    Всё это извращение было направлено только на то, чтобы спрятать чтение дискеты и анализ наличия метки. Т.к. было ясно, что какая бы ни была метка, если станет понятно, в чём защита, повторить её на любой другой дискете не составит особого труда.
    Я уже писал, что защита срабатывала отложенно. Если метка не была обнаружена, в основной код программы вносилось изменение, которое через некоторое время приводило к заполнению памяти "мусором" с помощью стека, т.е. сбоил ДОС (если я правильно помню). Ни каких сообщений, что копия программы не официальная.

    Собственно о метке на дискете.
    Проведя эксперименты с записью и чтением дорожки на дискете, я заметил, что даже на одной дискете, на одном дисководе запись дорожки всегда происходила "со смещением".
    Изучив формат дорожки, обнаружил большую область синхробайт в начале дискеты.
    Оказалось, что если начать запись дорожки (уже рабочей дискеты с файлами в каталоге), и прервать запись на этой первой области синхробайт, то читаемость дискеты не пострадает. Дискета штатными средствами отлично читалась, писалась, в общем работала как обычно.
    Но если попытаться прочитать дискету командой "Чтение дорожки", то после того байта на котором была прервана запись, читался сплошной "мусор". Из-за сдвига фазы (как я подозреваю) у прерванной записи и родного форматирования дискеты, синхронизация не восстанавливалась и информация всей дорожки терялась. Соответственно, не возможно было скопировать дискету штатными копировщиками.
    Сама "метка" конечно примитивна, читалось определённое кол-во байт командой "Чтение дорожки", и проверялось наличие не правильных синхробайт, появлявшихся после байта на котором прекращалась запись дорожки при её маркировке.
    [свернуть]
    Последний раз редактировалось KTSerg; 30.05.2020 в 08:56.

  5. Эти 3 пользователя(ей) поблагодарили KTSerg за это полезное сообщение:

    Improver (30.05.2020), ivagor (30.05.2020), shapipovo (06.06.2020)

  6. #4
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,843
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,818
    Поблагодарили
    1,044 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    сектор на дискете 2КБ
    Насколько помню стандартный для вектора (и не только для вектора) вариант - сектора по 1 Кб.

  7. #5
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Насколько помню стандартный для вектора (и не только для вектора) вариант - сектора по 1 Кб.
    Да, конечно сектор 1КБ. И по 5 секторов на каждой стороне дорожки.
    2КБ это уже из другой оперы.
    Последний раз редактировалось KTSerg; 30.05.2020 в 08:58.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 4
    Последнее: 23.06.2016, 00:02
  2. ВЕКТОР-06Ц Аукцион
    от OS в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 16.06.2012, 16:57
  3. Вектор-06Ц
    от Robusta в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 17.03.2009, 23:18
  4. Вектор-06Ц: БП от PC
    от Dmitry Dubrovenko в разделе Вектор
    Ответов: 11
    Последнее: 08.03.2009, 21:53
  5. Вектор-06Ц
    от AlexBel в разделе Барахолка (архив)
    Ответов: 4
    Последнее: 20.12.2007, 08:23

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •