User Tag List

Показано с 1 по 10 из 92

Тема: Контроллер дисковода для "Львов ПК-01"

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    07.03.2014
    Адрес
    Vancouver, Canada
    Сообщений
    402
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попала ко мне в руки игра Дракула в виде teledisk образа диска.
    HxC софт понимает TD0 формат, поэтому все было просто переброшено на эмулятор дисковода и сразу заработало на живом львове.

    Но вот, что интересно:
    - игра стартует автоматом после сброса
    - если поставить другой диск и выйти на командную строку хамелеона,
    а потом поставить дракулу и сказать DIR, то каталога неувидим и игра снова стартует автоматом
    - просмотр кода первого сектора показал, что там мусор и совсем непохоже на хамелеоновский каталог.
    - копировть диск неполучается

    Это было все очень интересно и заставило потратить пару часов на дизассемблирование хамелеона :-)

    Вот как это работает.
    Сам диск интересно размечен. Установить структуру очень просто: берем HxC софт, загружаем TD0 и сохраняем как XML.

    Вот небольшая выдержка:
    Код:
    <number_of_track>83</number_of_track>
    
    <number_of_side>2</number_of_side>
    
    <format>IBM_FM</format>
    
    <start_sector_id>1</start_sector_id>
    
    <sector_per_track>3</sector_per_track>
    
    <sector_size>1024</sector_size>
    
    <formatvalue>0</formatvalue>
    
    <gap3>255</gap3>
    
    <bitrate>250000</bitrate>
    
    <pregap>0</pregap>
    
    -<sector sector_size="1024" sector_id="1">
    
    -<sector sector_size="1024" sector_id="16">
    
    -<sector sector_size="128" sector_id="19">
    <data_fill>0x00</data_fill>
    т.е. по 3 сектора на дорожке
    номера секторов 1, 16, 19
    размеры секторов 1024, 1024, 128
    сектор 128 байт всегда заполнен нулями, два других неcут информацию.

    Хамелеон пытается прочесть первый сектор каталога в буфер 0xBD00
    ВГ93 читает сектор целиком, все 1024 байта.
    Получается buffer overflow attack :-)
    Начало стека известно из листинга хамелеона 0xBE80
    0xBE80-0xBD00 = 0x180

    вычислять положение указателя на момент чтения сектора совсем необязательно, можно просто пробить стек нужным адресом на некоторую глубину. В Дракуле 16 раз повторяется адрес 0xBD00

    Вот такие люди в стране советской были! :-)
    Справедливости ради стоит заметить, что авторы Хамелеона и Дракулы - одни и те же люди.
    Последний раз редактировалось kapitan-u; 23.09.2014 в 22:14.

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

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

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

Похожие темы

  1. Контроллер дисковода для "Ленинград-2"
    от freddy в разделе Ленинград
    Ответов: 49
    Последнее: 02.10.2014, 09:27
  2. Опознать клон Спектрума ("Мико", возможно, г. Львов)
    от alexshap в разделе Несортированное железо
    Ответов: 6
    Последнее: 10.12.2012, 20:12
  3. Эмулятор "Львов ПК-01" на "Dingoo A-320"
    от Tim0xA в разделе Львов
    Ответов: 3
    Последнее: 03.07.2012, 10:51
  4. Аукцион. Компьютер "Львов"
    от riogen в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 28.03.2011, 10:52
  5. Продам печатные платы: от "Львов-48" и клавиатуры
    от Tim0xA в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 27.12.2008, 16:41

Ваши права

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