User Tag List

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

Тема: Проблема копирования дампа MCS-48 (возможно защита)

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

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

    Регистрация
    18.08.2024
    Адрес
    г. Санкт-Петербург
    Сообщений
    6
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Проблема копирования дампа MCS-48 (возможно защита)

    Имеется устройство Autohelm-3000 - "авторулевой для парусной лодки".
    Произведено американской компанией Raymarine в начале 90х.
    Функционал устройства простой - управлять моторчиком 12в, поддерживать заданный магнитный курс движения судна. Корпус лодки повернулся направо - коммутируется соединение "повернуть руль налево и дожидаться возврата на курс", и наоборот. Через микроконтроллер Intel D8749H в авторулевом решается сама логика "руления": "реагировать на кнопки", "мигать/пищать", "отслеживать курс" и подобное.
    ......
    Устройство исправно работало, но в ходе неудачного вмешательства (пытались ему подключить выносные кнопки) - "спалили" микроконтроллеру "ногу №23" и один ряд кнопок перестал работать. В остальном устройство исправно, на подачу питания и нажатие остальных кнопок реагирует как обычно.
    ......
    Вынул чип из разъема, с помощью программатора Willem успешно снял дамп.
    Успешно залил дамп в пустой новый чип. Прошивка успешная - программа совпадает 1:1 старый-новый.
    Но после установки нового чипа в разъем - устройство не работает.
    При подаче питания оно должно кратковременно пискнуть и моргнуть светодиодом.
    Но новый чип пищит и светит постоянно (микроконтроллер где-то зависает в начале программы).
    После возврата старого чипа - все работает, втыкаю новый - нет, висит.

    ......
    Перепробовал разные чипы, разные варианты прошивки, менял тактовую частоту:
    1) Закупил 5 чипов D8749H из от 5 разных производителей (маркировка размещена по разному, цвет пластика разный, производители как INTEL, так и NEC). Одни шьются только с шунтом, другие без. Точно разные партии.
    2) Закупил кварцы, менял кварцевый резонатор с оригинальных 11Мгц на 10Мгц, 6Мгц, 4Мгц - старый чип работает на всех частотах, новый чип виснет.
    3) Нашел в интернете прошивку с другого рабочего Autohelm-3000, прошивал ее.
    Результат прежний - старый чип работает, новый чип зависает и пищит, на всех вариантах чипов и прошивок результат одинаковый.
    4) Втыкал "пустой чип" - да, все логично, прибор молчит.

    ......
    Копался в дизассемблерном листинге и корректировал программу:
    1) Достал листинг прошивки Autohelm-3000, частично разобрал, сравнил с бинарником - да, это корректный листинг.
    2) Корректировал дамп для проверки его функционирования (размещал по нужным адресам NOPы) - пищалка не активируется, только светодиод постоянно горит, то-есть программа выполняется, но или аппаратно или программно зависает где-то дальше.

    .....
    Выглядит так, будто программа защищена от копирования:
    1) Дамп сделан под конкретный чип и выполняется проверка по серийному номеру, - но в мануалах ничего подобного не встречается. Нету в ассемблере MCS-48 команды "программно прочитать серийник".
    2) Возможно что-то записано в энергонезависимый(?) RAM, ее нельзя скопировать программатором. Но RAM на этом процессоре обычный, и без питания (и тем более с извлечением чипа) - гарантированно сбрасывается.
    3) Возможно производитель для защиты в своем чипе сам "сжег" какие-то невостребованные пины. И программа получая с их значения, определяет свое присутствие в другом микроконтроллере. Но всю схему перелопатил, подозрительные "пины" не втыкал в разъем, а подвешивал в воздух. Нет - все всегда одинаково, старый чип работает, новый - зависает.

    .....
    А может требуется какая-то дополнительная настройка для "нового чипа", кроме "залить дамп"?
    И в программаторе Willem этого функционала нет?
    1) Задать тактовую частоту внутреннего таймера - ну, нет такого в мануалах. И старый чип работает с любыми кварцевыми резонаторами: 11Мгц, 10Мгц, 6Мгц, 4Мгц, новый - виснет.
    2) Как-то задать направление портов или их назначение? Но работа с портами определяется на уровне программы или питанием на пинах. Здесь все одинаково и схемотехника и дамп.


    .....
    Подскажите, что может быть?
    Голову уже сломал с копированием этого чипа.

    PS:
    Файл со схемой устройства к сообщению приложить не дает.
    Может у меня рейтинг маловат.
    Выложил файл вот сюда:
    https://disk.yandex.ru/i/xPJaC6uoOHsDGQ

    - - - Добавлено - - -

    Открывал аналогичную тему на "cyberforum" (не уверен, что здесь принято прикладывать ссылки на него)
    Вот ключевые дополнения оттуда:
    ............

    Прошивку скачанную из интернета - я разбирал.
    Очень логичная в части работы с портами и шиной и засылаемыми масками.
    Видно как засылает маску:
    anl bus,#07FH - на включение пищалки
    anl bus,#0BFH - на включение лампочки
    orl bus,#040H - на выключение лампочки

    Видно как последовательно перебирает переключатель для определения его положения
    anl bus,#0DFH - маска на 6 положение переключателя
    call L051F
    anl bus,#0EFH - маска на 5 положение переключателя
    call L051F
    anl bus,#0F7H - маска на 4 положение переключателя
    call L051F
    итд

    короче, понятная логичная прошивка, верю что от Autohelm-3000
    Но в работе ее не видел.

    Снятая мной прошивка - гораздо более запутанная.
    Явно видна только работа с пищалкой - anl bus,#07FH
    Но других понятных конструкций в работе с портами и шиной со знакомыми масками - так сразу не обнаруживается.
    Прошивка вообще другая по структуре - очень мало общих элементов с предыдущей прошивкой.
    Но эта прошивка - точно работает на старом чипе!

    Обе прошивки рабочие, одну в работе видел практически, в работу другой можно поверить теоретически.
    Обе одинаково "зависают" на новом чипе - пищат и светят лампой.
    если вместо anl bus,#07FH поставить NOP - обе не пищат, а только светят.
    Процессор пытается выполнять и ту и другую прошивку, где-то чуть дальше обе виснут с одинаковым эффектом.

    .......
    Есть подозрение на strt t и прочие таймерные функции.
    В интенет-прошивке запуск таймера идет сразу вначале программы.
    Может ему что-то мешает нормально таймеру аппаратно работать в новых чипах?
    Ибо, что на кварце 11Мгц, что на кварце 4Мгц - на старом чипе писк и свет длится ровно полсекунды, несмотря на разницу тактовых частот более чем в 2 раза. А вот на новых чипах - писк и свет начинается, но не заканчивается.

    - - - Добавлено - - -

    Еще дополнения касательно подозрений на "сверку программы с серийным номером":
    .........
    На электронной схеме нет более ни одного поставщика цифрового кода, ни внешней памяти, ни внешнего ПЗУ.
    Есть несколько DIP-микросхем, но они уникальный код хранить не могут
    IC5 = M74HC4066B1R = "четыре двунаправленных переключателя"
    IC4 = CD4051BE = "Мультиплексор аналоговый 8-каналов"
    IC3 = CA3130EZ = "Операционный усилитель"
    .........
    Ну и новый чип со скопированной программой вставляется в ту-же самую плату!
    Если бы были поставщики "серийного номера платы" - то номер был бы тот-же самый!
    Последний раз редактировалось akudelev; 21.08.2024 в 13:54.

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

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

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

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

Похожие темы

  1. Ответов: 0
    Последнее: 21.01.2021, 17:46
  2. Ответов: 4
    Последнее: 30.05.2020, 08:55
  3. Создание дампа музыки
    от GM BIT в разделе Программирование
    Ответов: 2
    Последнее: 10.05.2011, 19:00
  4. MCS-51 old and Atmel
    от nihirash в разделе Для начинающих
    Ответов: 0
    Последнее: 15.11.2006, 10:20
  5. В чем проблема копирования дискеты?
    от Dut_Norshi в разделе Утилиты
    Ответов: 4
    Последнее: 24.07.2006, 12:45

Ваши права

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