Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Производственное оборудование Медицинская техника, а также другое промышленное оборудования. Обсуждение и ремонт.

 
Опции темы
Непрочитано 06.03.2017, 17:09  
ampy
Гражданин KAZUS.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

Размер нормальный, 49152 = 0xC000. C000+14000 = 20000. Начальную область не схоронил!
В конце больше ничего нет, это и есть конец. Завтра считаю еще полностью.
У меня тоже что-то имеется с тех времен... Sourcer еще был.
Но м.б. "новая" ида даже лучше эту прошивку возьмет...
Реклама:
ampy вне форума  
Непрочитано 07.03.2017, 14:09  
ampy
Гражданин KAZUS.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

Sourcer более-менее справляется.
По волнам времени и памяти блин.
Думаю, это должно находится по адресу F400:0000. Т.е. к 14000 добавляем E0000.
Потому что там есть jmp far на этот адрес, F400:0000.
Начало тупое, но похоже на исполняемый код.
Похоже на китайскую инициализацию TFT дисплея.
Никак не могу заставить сорсер ставить не произвольный, а нужный мне сегмент.
Закидываю листинг. Прошивка с FF вначале бессмысленна, не кладу ее.
Вложения:
Тип файла: zip ZAROM1.ZIP (165.7 Кб, 0 просмотров)
ampy вне форума  
Непрочитано 12.03.2017, 04:05  
ampy
Гражданин KAZUS.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

Просмотрел прошивку. Кое-где есть сложные места, но совсем не тупик.

Вот, к примеру, работа с флешью, из которой мы узнаем, что
флеш находится в сегменте 8000. Последовательность, правда,
недокументирована в даташите на AM29F010B.

Код:
seg000:96C0 sub_FD6C0       proc near 
seg000:96C0                 pushf
seg000:96C1                 push    ds
seg000:96C2                 push    ax
seg000:96C3                 mov     ax, 8000h
seg000:96C6                 mov     ds, ax
seg000:96C8                 assume ds:nothing
seg000:96C8                 mov     byte ptr ds:5555h, 0AAh ; 'к'
seg000:96CD                 mov     byte ptr ds:2AAAh, 55h ; 'U'
seg000:96D2                 mov     byte ptr ds:5555h, 0F0h ; 'Ё'
seg000:96D7                 mov     al, [bx]
seg000:96D9                 pop     ax
seg000:96DA                 pop     ds
seg000:96DB                 assume ds:nothing
seg000:96DB                 popf
seg000:96DC                 retn
seg000:96DC sub_FD6C0       endp
Порты находятся по адресам FFxx и 10x, 20x, 300.
Но непонятен смысл нижеприведенного кода, которым заполнен листинг "чуть менее чем более". Т.е. - зачем помещать 200Ah в ax, а затем выводить только младший байт?

Код:
seg000:0009                 mov     dx, 0FFA2h
seg000:000C                 mov     ax, 200Ah
seg000:000F                 out     dx, al
seg000:0010                 mov     dx, 0FF80h
seg000:0013                 mov     ax, 8000h
seg000:0016                 out     dx, al
seg000:0017                 mov     dx, 0FF82h
seg000:001A                 mov     ax, 0A00Ah
seg000:001D                 out     dx, al
ampy вне форума  
Непрочитано 13.03.2017, 10:43  
ampy
Гражданин KAZUS.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

Прикольно, текст сообщений вкраплён в код.
Иду и сорсер это сводит ума.
Но мы то покрепче.
Например:

Код:
seg000:0196		    call    sub_8974 ;см ниже
seg000:0199 aKontrollerPim1 db 'Контроллер ПИМ-1',0Dh,0Ah
seg000:0199		    db '(C) 1997-1999 АОЗТ "ИФ-АТИС"',0Dh,0Ah
seg000:0199		    db 'Версия от 15/02/01',0
seg000:01DC		    call    sub_CEA ;сюда происходит возврат
Код:
seg000:8974 sub_8974   proc near
seg000:8974                 pop     bx ;адрес возврата на самом деле адрес текста
seg000:8975                 test    ds:byte_2052, 4
seg000:897A                 jz      short loc_8998
seg000:897C                 pushf
seg000:897D                 cli
seg000:897E                 mov     al, 0Dh ;какие-то махинации с переводом строки
seg000:8980                 call    sub_88FB
seg000:8983                 mov     al, 0Ah
seg000:8985                 call    sub_88FB
seg000:8988
seg000:8988 loc_8988:
seg000:8988                 mov     al, cs:[bx] ;используем полученный адрес
seg000:898B                 inc     bx
seg000:898C                 or      al, al
seg000:898E                 jz      short loc_8995
seg000:8990                 call    sub_88FB
seg000:8993                 jmp     short loc_8988
seg000:8995 loc_8995:
seg000:8995                 popf
seg000:8996                 jmp     bx ;вертаемся назад, но уже за текст
ampy вне форума  
Непрочитано 13.03.2017, 12:40  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

Ну вкрапления "больше чем" это макросы, но реализация…
А такие фокусы с сообщениями после call и потом перерасчетом точки возврата из вызова очень похожи на практику ещё из предыдущих систем .
Кстати их целью было и осложнение процесса reverse engineering.
Для ЕС и потом СМ приятель написал интерактивный дизассемблер с эвристикой для таких вставок. Похоже стоит у него поинтересоваться о наличии варианта для ПК, вроде как идея была, но не могу сказать сейчас о состоянии ее реализации за давностью лет…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
ampy (13.03.2017)
Непрочитано 13.03.2017, 13:00  
ampy
Гражданин KAZUS.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

Сообщение от mike-y-k Посмотреть сообщение
Ну вкрапления "больше чем" это макросы, но реализация…
Что-то не пойму, как это могут быть макросы. Если это макросы инициализации dx и ax, то откуда берется старший байт ax?...
Может это тоже "чтоб немцы не догадались"?
Это важный вопрос, т.к. от ответа зависит является ли начало скачанного кода действительно точкой входа и кодом инициализации платы.

Последний раз редактировалось ampy; 13.03.2017 в 13:15.
ampy вне форума  
Непрочитано 13.03.2017, 14:21  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

Уже не помню подробности, но результат mov ax, 0A0h после компиляции каким-то из ассемблеров имел именно такой случайный вид. А при наличии макроса программист просто переставал думать о происходящем при ассемблировании. Написал типа my_macro_out 00Ah, 0FFA2h и решил свою задачу.
Ну и вариант "защиты" тоже конечно имеет право на существование , но я бы на него много не поставил.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
ampy (13.03.2017)
Непрочитано 14.03.2017, 10:05  
6ap6oc
Прописка
 
Регистрация: 02.03.2010
Сообщений: 139
Сказал спасибо: 12
Сказали Спасибо 49 раз(а) в 26 сообщении(ях)
6ap6oc на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

Про оптимизацию быстродействия:
"Процессоры 8088 и 80188 имеют 8-разрядную шину, и для них не имеет значения, на какую границу выровнены данные, поэтому выравнивание можно не применять или установить на границу байта (1 байт, 8 бит); процессоры 8086, 80186 и 80286 обладают 16-разрядной шиной, и им проще действовать с данными, выровненными на границу слова (2 байта, 16 бит)"

Скорее всего, ключ компилятора установлен.
6ap6oc вне форума  
Непрочитано 14.03.2017, 11:31  
ampy
Гражданин KAZUS.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

6ap6oc,
Не сходится, т.к. лишний байт добавляется и к "четным" и к "нечетным" командам:

Код:
38A9:0041  BA FF8E				mov	dx,0FF8Eh
38A9:0044  B8 0248				mov	ax,248h ;0044 - четный
38A9:0047  EE					out	dx,al
38A9:0048  BA FF90				mov	dx,0FF90h
38A9:004B  B8 0400				mov	ax,400h ;004b - нечетный
38A9:004E  EE					out	dx,al
38A9:004F  BA FF92				mov	dx,0FF92h
38A9:0052  B8 0448				mov	ax,448h
ampy вне форума  
Непрочитано 14.03.2017, 12:48  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Опознать плату управления на 80186

6ap6oc, для выравнивания на границу у ассемблера есть такая команда - nop. И о быстродействии пока речи нет совсем. Тут пока нужно с имеющимся кодом разобраться.
Выравнивание на границу кратную 16 (AFAIK) вроде как даёт прирост скорости только на операциях чтения/записи 16 битных регистров для этого процессора (для данных) и на командах перехода. При оптимизации под 16 бит именно такое выравнивание и происходит при ассемблировании.
8088/80188/8086/80186/80286/… от Intel и их функциональные аналоги от других производителей со временем несколько разошлись в аппаратной реализации многих алгоритмов работы. И тенденция пока не изменилась .
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 14.03.2017 в 12:50.
mike-y-k вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите опознать плату picpeter Информация по радиокомпонентам 8 18.06.2011 19:38
[Решено] Помогите опознать матер. плату Владимир из Уфы Ремонт оргтехники 19 29.01.2011 20:26
Помогите опознать сигналку по блоку управления. starasenko Электроника средств транспорта 1 24.02.2010 09:57
Про материнскую плату ... 011119xx Ремонт оргтехники 1 15.07.2005 15:35


Часовой пояс GMT +4, время: 03:41.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot