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

User Tag List

Страница 1 из 13 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 127

Тема: ROM-формат: автозапуск, защита, секреты

  1. #1
    Tim0xA
    Гость

    По умолчанию ROM-автозапуск

    В "Справочном руководстве по компьютеру "Вектор-06Ц", в котором подробно описан ROM-формат, упоминается об оригинальном способе ROM-автозапуска. Метод заключается в формировании ROM-файла таким образом, чтобы при его загрузке были модифицированы служебные ячейки начального загрузчика в области ОЗУ (стек, точки перехода). Таким образом загружаемая программа перехватывает управление и может делать свои "черные" дела. Естественно, при этом есть некоторое ограничение: нет возможности осуществить переход на собственную процедуру обработки прерываний, т.к. ПЗУ остается включенным.
    Основное назначение метода - защита программ от нелегального копирования, но есть и прикладное применение - ROM-дампинг. Можно создать такую программу, которая, получив управление, прочитает содержимое ПЗУ и выведет ее на магнитофонный выход или на разъем ПУ. Польза очевидна - нет нужды выковыривать ПЗУ, чтобы прочитать его содержимое.

    Вот примеры программ, использующих метод ROM-автозапуска разными способами:
    Копировщик FTT-Copy - работает только с базовым (самым распространенным) начальным загрузчиком 512 байт.
    Копировщик TURBO-COPY - работает с большинством загрузчиков. Пример загрузки можно посмотреть здесь http://www.youtube.com/watch?v=NMQ09QdirCg
    Последний раз редактировалось Tim0xA; 16.04.2009 в 13:23.

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

  3. #2
    Tim0xA
    Гость

    По умолчанию ROM-защита "по имени"

    Защита от тиражирования программ "по имени"

    Байт-3
    Типичная внешняя защита. Основана на внутренней структуре программы COPY. Дело в том, что эта программа после загрузки копируемого файла и перед выводом его на магнитофон делает проверку символов его имени. Если очередной символ не удовлетворяет определенным требованиям, то загорается "НЕЛЬЗЯ" и программа сбрасывается.
    Точные требования к символам имени неизвестны, нужно смотреть внутрь копировщика.

    С помощью конвертера Rom2wav можно получить WAV-файл "без защиты", если исходное имя ROM-файла написано латинскими заглавными буквами и "с защитой", если используются прописные или русские буквы.

    Защита представляет только исторический и исследовательский интерес, т.к. большинство копировщиков (исключая базовый 2.1) ее игнорируют. Кишиневский центр "Компьютер" распространял свой софт с этой защитой. Пока не было других копировщиков элементарно снималась через монитор-отладчик.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	testtp_11-40-42.png 
Просмотров:	322 
Размер:	4.1 Кб 
ID:	11629  
    Последний раз редактировалось Tim0xA; 16.04.2009 в 14:12.

  4. #3
    Tim0xA
    Гость

    По умолчанию ROM-формат: "веселые" подблоки

    Нигде не сказано, что подблоки в блоке ROM-файла должны грузиться последовательно и никак иначе. Дык надо проверить! Грузим подблоки нормально, инверсно, туды-сюды, внутрь, наружу, интерлейсно, случайным образом, чередуем это все по два блока. Работает! Реальное видео (из эмулятора, не фейк) http://www.youtube.com/watch?v=gleNQY-oDLk
    Последний раз редактировалось Tim0xA; 17.04.2009 в 23:57.

  5. #4
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    2,747
    Благодарностей: 736
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Tim0xA, здорово, только звука не хватает.

  6. #5
    Tim0xA
    Гость

    По умолчанию

    Заменил видео на другое со звуком.
    Последний раз редактировалось Tim0xA; 17.04.2009 в 23:57.

  7. #6
    Junior
    Регистрация
    21.03.2009
    Адрес
    Санкт-Петрбург
    Сообщений
    11
    Благодарностей: 1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tim0xA Посмотреть сообщение
    Нигде не сказано, что подблоки в блоке ROM-файла должны грузиться последовательно и никак иначе.
    Так не зря же большие блоки в записывались по 2 раза... Если первый раз неверно прочиталось -во второй прочитывалось. В некоторых загружчиках и большие блоки можно грузить в любом порядке, а вот Uniload 2 у меня не читал программу, если после блока не шел его повтор, даже если с первого раза всё прочиталось... видимо разработчики это жестко прошили в коде.

  8. #7
    Tim0xA
    Гость

    По умолчанию

    Цитата Сообщение от AlexeyS Посмотреть сообщение
    Так не зря же большие блоки в записывались по 2 раза... Если первый раз неверно прочиталось -во второй прочитывалось.
    Да можно хоть по 20 раз Это никак не ограничивается.

    Цитата Сообщение от AlexeyS Посмотреть сообщение
    В некоторых загрузчиках и большие блоки можно грузить в любом порядке
    Это возможно в LoadByte. Я уже пробовал грузить блоки хаотично. Видео потом выложу.

    Цитата Сообщение от AlexeyS Посмотреть сообщение
    а вот Uniload 2 у меня не читал программу
    Этот загрузчик сохранился?
    Последний раз редактировалось Tim0xA; 18.04.2009 в 22:45.

  9. #8
    Tim0xA
    Гость

    По умолчанию ROM-формат: избыточность

    Продолжаем исследовать ROM-формат. На этот раз проверим его избыточность. Не вся информация используется при подсчете контрольной суммы и при чтении файла, а значит чем-то можно пожертвовать.

    Вот, например, один блок из знаменитого Pillars:
    Код:
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    55 55 55 55 E6 00 00 00 00 4E 4F 44 49 53 43 30  UUUUж    NODISC0
    30 30 30 30 30 30 30 70 69 6C 6C 61 72 73 20 20  0000000pillars
    20 20 00 00 01 13 13 DE 00 00 00 00 E6 82 DE 8A      ☺‼‼Ю    ж'Ю_
    AB 0F 4F 0A C9 47 0E F1 2D 24 24 2D 24 24 24 2D  <☼O◙ЙG♫с-$$-$$$-
    2D 24 24 24 E7 4F 06 53 25 2C 25 25 25 25 2C 80  -$$$зO♠S%,%%%%,_
    00 00 00 00 E6 85 DE E0 9C 51 09 3D 30 7D 08 BC      ж:Юа_Q○=0}◘_
    FC 67 42 40 09 BB 83 07 38 40 09 BB 07 70 2F 3F  ьgB@○>_•8@○>•p/?
    08 BC 0E 5B 9C 9B 32 D1 00 00 00 00 E6 87 DE 60  ◘_♫[_>2С    ж╪Ю`
    30 73 C2 D6 E0 FB E7 C6 27 D9 DD 5D 15 E9 9A 35  0sВЦаызЖ'ЩЭ]§й_5
    F2 E8 D1 AD B4 62 EC C4 3B FB 5F 09 9A 1C 93 94  тиС-_bмД;ы_○_∟""
    00 00 00 00 E6 80 DE C3 C3 12 0E 49 E7 4F 06 38      ж_ЮГГ↕♫IзO♠8
    2D 24 2D 2D 24 2D 2D 24 E7 4F 06 83 E7 47 0E 1F  -$--$--$зO♠_зG♫▼
    2C 25 25 25 2C 25 E7 FB 00 00 00 00 E6 81 DE E3  ,%%%,%зы    ж_Юг
    1F 8B 99 AE 4F 2B 1F 98 8E 9A 47 E3 3B 3B F1 33  ▼<TRO+▼___Gг;;с3
    33 D5 53 88 A9 5F 33 92 D5 C1 3E 00 F5 C8 47 D8  3ХS_c_3'ХБ> хИGШ
    00 00 00 00 E6 83 DE 2C 25 25 2C 25 25 25 25 25      ж_Ю,%%,%%%%%
    2C 25 25 25 2C 25 25 25 2C 25 2D 25 25 25 25 2C  ,%%%,%%%,%-%%%%,
    2C 25 25 2C 25 25 2C 48 00 00 00 00 E6 86 DE AD  ,%%,%%,H    ж┼Ю-
    B2 0B 92 35 64 E8 EA 5D 8D 66 92 95 CB 68 F6 9E  _♂'5dик]_f'•Лhц_
    8E 33 02 AC F4 FA B0 16 59 3E E0 36 81 9B 69 5E  _3☻┐фъ°■Y>а6_>i^
    00 00 00 00 E6 84 DE 25 E7 47 0E AD E7 4F 06 94      ж"Ю%зG♫-зO♠"
    24 2D 24 2D 24 2D 24 24 E7 4F 06 DA E7 47 0E 4C  $-$-$-$$зO♠ЪзG♫L
    E7 F0 88 CE 17 1F 19 95
    Красным цветом выделены байты, с которыми мы попрощаемся. Их 42 штуки.

    Pillars - состоит из 19 блоков. Экономия 798 байт. Выигрыш в скорости загрузки 2 секунды.
    Бластер - 98 блоков. Экономия 4116 байт - более 4 килобайт! Выигрыш в скорости загрузки 12 секунд!

    Конечно, в эмуляторе все красиво, но надо проверить на реале. Работает!
    Смотрим видео загрузки Pillars http://www.youtube.com/watch?v=fkEcZfCtHLA
    Чтобы было веселее, заодно сделана случайная загрузка подблоков.
    Последний раз редактировалось Tim0xA; 18.04.2009 в 22:52.

  10. #9
    Tim0xA
    Гость

    По умолчанию Скроллинг имени и новая защита ROM-файлов

    В некоторых загрузчиках и копировщиках отображается имя загружаемого ROM-файла. Возникла шальная мысль - сделать текстовый скролл, подставляя в поле имени ROM-блока какой-нибудь свой текст, постепенно смещая его на один символ влево от блока к блоку. Но, к сожалению, реализовать эту задумку не удалось, т.к. имя файла считывается и отображается всего один раз. Зато попутно выяснилось, что поле имени каким-то образом используется при вычислении адреса загрузки следующего блока. Т.е. если во втором блоке ROM-файла изменить всего один символ имени, то блоки уже могут загружаться через одну или несколько позиций. И это несмотря на то, что номер блока, их количество и начальный адрес указаны правильно! Надо подумать, можно ли это использовать как-нибудь.

    Те 42 байта, которые я выкинул из ROM-блока в предыдущем сообщении, можно использовать для скрытой передачи данных и создать еще один метод защиты от копирования. В этом случае программа может поставляться в виде двух ROM-файлов.
    Первый ROM-файл - это загрузчик (один блок, запускается по БЛК+СБР, как в кишиневском ROM1, или автозапуском), который "знает", что в обычно неиспользуемых полях ROM-блока есть полезная информация, например, ключ декодирования по XOR.
    Второй ROM-файл - закодированная программа, ключ декодирования которой находится в неиспользуемых полях подблоков. Загрузчик, считывая подблоки, извлекает ключ дешифровки и загружает в память уже корректные данные.
    Если скопировать второй закодированный файл обычным копировщиком, ключ будет утерян и программа будет неработоспособна.
    Последний раз редактировалось Tim0xA; 21.04.2009 в 13:14.

  11. #10
    Tim0xA
    Гость

    По умолчанию Рисуем во время загрузки ROM-файла

    Во время загрузки ROM-файла можно писать поверх загрузочной таблицы и даже рисовать. Правда всего лишь одним цветом. Но зато это работает в любом из табличных магнитофонных загрузчиков. В приложении WAV-файл, скриншот и можно посмотреть видео http://www.youtube.com/watch?v=-hU9__2JB00
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Clipboard01.gif 
Просмотров:	303 
Размер:	18.8 Кб 
ID:	11759  
    Вложения Вложения

Страница 1 из 13 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Секреты Last Battle
    от captain cobalt в разделе Игры
    Ответов: 9
    Последнее: 18.03.2017, 05:08
  2. Защита авторских прав.
    от multimax в разделе Разное
    Ответов: 27
    Последнее: 10.02.2008, 11:51
  3. автозапуск .SCL в Spin & Spectaculator
    от ultra в разделе Эмуляторы
    Ответов: 0
    Последнее: 10.02.2008, 06:07
  4. Секреты в Soldier of Fortune
    от kmatveev в разделе Игры
    Ответов: 2
    Последнее: 14.09.2005, 12:54

Ваши права

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