Перейти к содержанию
    

Ищу типовые схемы включения процессора 80188

1 час назад, jcxz сказал:

много кода писалось на ассемблере

...и этот код в таких темах сомнительный, потому что они создаются после того, когда что-то посыпалось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, jcxz сказал:

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

А зачем вообще реверсить код? У устройства есть инструкция, по ней можно понять что и как оно делает и просто сделать такое же по функционалу, сомневаюсь, что устройство - это какой-то навороченный томограф или узи аппарат...

А ваш эмулятор не избавляет от реверса схемотехники и периферии... Либо надо разрабатывать такой "процессор", который полностью до последнего сигнала и уровня повторяет исходный. Потому, что:

1 час назад, jcxz сказал:

Особенно - если его писал опытный человек, умеющий много хитрых приёмов - будет гораздо сложнее.

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

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, mantech сказал:

А зачем вообще реверсить код? У устройства есть инструкция, по ней можно понять что и как оно делает и просто сделать такое же по функционалу, сомневаюсь, что устройство - это какой-то навороченный томограф или узи аппарат...

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

Хочется спросить: А много вы такого сделали? "Просто прочитав инструкцию" и тут же сделав? Естественно - не мигалку лампочками, а что-то серьёзное? свежо предание да верится с трудом...  :biggrin:

Вот перед вами к примеру - кардиограф, с анализом отведений, который анализируя получаемые сигналы, диагностирует различные патологии. И у которого внутри в ПО закрыт математический аппарат обработки. Не раскрываемый нигде (так как "ноу-хау"). И над созданием этого мат.аппарата несколько лет работал коллектив разработчиков+врачей. С клиническими исследованиями и т.п. Просто возьмёте прочитаете инструкцию и повторите??? ну-ну.... на словах д'Артаньяном быть не трудно  :biggrin:

 

Или даже пример доступнее: Вот перед вами обычный MP3-проигрыватель. Допустим - описания формата mp3 и исходников - нет. Но есть инструкция(!): "Вставить SD-карту, нажать Play"'. Просто прочитаете инструкцию и повторите?  :biggrin:

1 час назад, mantech сказал:

А ваш эмулятор не избавляет от реверса схемотехники и периферии...

Тема у нас не про смехотехнику, а про программу. Не надо валить с больной головы на здоровую.

1 час назад, mantech сказал:

Либо надо разрабатывать такой "процессор", который полностью до последнего сигнала и уровня повторяет исходный. Потому, что:

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

Что за "недокументированные функции"? Функции чего?

Какие-то пустые фантазии....

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

Вот вы в своих девайсах строите защиту от чего-то неизвестного, чего сейчас нет, но что будет в будущем? А как предугадываете эти будущие угрозы? К прорицателям обращаетесь?  :biggrin:

 

PS: Когда-то давно, будучи ещё начинающим, я как раз писал эмулятор своего домашнего ПК (на i8080). И ничего - справился. Запускал на нём потом кучу программ. Много десятков разных. Практически все работали нормально. И это при том, что был я тогда начинающим и совсем зелёным. И при этом вполне осилил эту задачу. И процессор, и периферию и время исполнения эмулировал.

А если бы в то время стояла задача к примеру: реализовать свой mp3-декодер, то не справился бы.

Поэтому сужу не на пустом месте, а по собственному опыту....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/31/2024 at 8:37 PM, jcxz said:

А если бы в то время стояла задача к примеру: реализовать свой mp3-декодер, то не справился бы.

Поэтому сужу не на пустом месте, а по собственному опыту....

Да ладно! Не нагнетайте.. 

В начале 2000-х делал и mp3-декодер и mp3-кодер.. Причем, на BF-537..

Ничего там сложного нет..

😎

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, jcxz said:

PS: В те далёкие времена (времена 80188) довольно много кода писалось на ассемблере. Особенно для МК.

Нифига. Все библиотеки от Advantech и ICP DAS писаны были на Си. Правда, там и самый медленный МК работает на 40 МГц, а есть и на 80 МГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, jcxz сказал:

И над созданием этого мат.аппарата несколько лет работал коллектив разработчиков+врачей. С клиническими исследованиями и т.п. Просто возьмёте прочитаете инструкцию и повторите???

Ну так разумеется, что не один человек будет заниматься реверсом, а несколько+врачи...

1 час назад, jcxz сказал:

Какие-то пустые фантазии....

Защита обычно строится для противодействия чему-то известному её разработчикам.

Почитайте про защиты примитивного спектрума 48к, там вся схемотехника была уже известна, но взломщики копьев пообломали там нехило так...

1 час назад, jcxz сказал:

Вот вы в своих девайсах строите защиту от чего-то неизвестного, чего сейчас нет, но что будет в будущем? А как предугадываете эти будущие угрозы? К прорицателям обращаетесь?

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

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, tonyk_av сказал:

Нифига. Все библиотеки от Advantech и ICP DAS писаны были на Си. Правда, там и самый медленный МК работает на 40 МГц, а есть и на 80 МГц.

И что? А все библиотеки для TI DSP c55xx - на ассемблере.

И какое отношение имеет частный случай к моей фразе? Я разве говорил "весь код писался на ассемблере"?

1 час назад, mantech сказал:

Ну так разумеется, что не один человек будет заниматься реверсом, а несколько+врачи...

....и продлится это год. А повторить с помощью эмуляции (или даже - повторить с внесением некоторых модификаций) - может один программист. И за время кратно меньшее.

1 час назад, mantech сказал:

Да все куда проще, закладки в программе, в разных местах с цепочкой привязок к железу

У вас богатая фантазия. Это точно. Вы не видели устройства, не знаете что оно делает. А уже нафантазировали там кучу супер-защит. А как показывает практика - такое творят в очень редких случаях. И скорее это признак паранойи, чем реальная необходимость. Да - параноики существуют. Но их не так уж много.

Все эти "закладки" и пр. - приводят к резкому увеличению длительности разработки. А значит - увеличивают срок выхода на рынок. Что для коммерческих проектов - очень важно. Также - чем больше такого накодите - тем больше потенциальных багов внесёте в свой код -> сложнее будет отладка и сопровождение, выпуск новых версий. А абсолютной гарантии всё равно не получите - кто сильно захочет - всё равно все ваши закладки найдёт.

Поэтому такое творят имхо больше от переизбытка свободного времени. В реальных проектах - никогда не слышал чтобы кто-то занимался такой ерундой - времени и так дефицит и на полезные задачи. И скорее это больше - байки.

 

PS: Я не говорю, что абсолютно весь код нужно запускать под эмулятором. Можно выделить (если это возможно) в коде участки работы с периферией. Например - с какими-то интерфейсами связи. И реализовать это нативным кодом ARM. А основную массу кода - под эмуляцией. Особенно - всю математику. Тогда и требования по синхронизации с реальным временем можно сделать более мягкими.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

От задачи зависит- вот недавно поднимали прибор на 8086- радиоизмрительный, как всегда подохла батарейка  от старости и слетели все калибровки радиотракта и тракта ПЧ. Копии ОЗУ с батарейной поддержкой конечно не сохранилось.   Фирма- производитель три раза перекуплена и никакой поддержки от нее нет. Удалось достать дамп от подобного прибора, но другие диапазоны. Вот в этйо каше и разбирались итеративным методом потихоньку приводя прибор в живое состояние и калибруя те массивы в памяти, которых разобрались.  Без использования ICE c заглядыванием в реальное поведение железа ничего бы не вышло. Понятно, что был и дизассемблер, и эмулятор софтовый тоже использовался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, jcxz сказал:

Поэтому такое творят имхо больше от переизбытка свободного времени. В реальных проектах - никогда не слышал чтобы кто-то занимался такой ерундой - времени и так дефицит и на полезные задачи. И скорее это больше - байки.

Байки-байками, а в те времена такое было постоянно, в более-менее дорогих аппаратах, тогда это не сейчас, лишь бы побыстрее выкинуть на рынок, времена не путайте, это сейчас маркетологи+быдлокодеры в тренде.... Сам видел защиты медоборудования по переливанию крови из пиндосии. Про спектрум уже приводил пример, а это просто игрушка вообще была))) Еще не забывайте, что никаких битов защиты тогда не было, поэтому приходилось кодерам извращаться со всякими Alcatraz'ами и иже с ними)))

9 часов назад, jcxz сказал:

У вас богатая фантазия. Это точно. Вы не видели устройства, не знаете что оно делает. А уже нафантазировали там кучу супер-защит.

Еще раз = если устройство простое, то наверно ничего там нет, в крайнем случае привязка к какому-нить серийнику, но тогда скопировать его тоже большого труда не составит на совр. эл. базе, а если сложное, то выше уже написал... Разумеется, это только ИМХО, но пиндосов я знаю, в смысле их оборудование, может тут конечно европа какая-нить, там паранойи поменьше)))

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, mantech сказал:

Байки-байками, а в те времена такое было постоянно, в более-менее дорогих аппаратах,

Допустим даже там оно есть. Но как это поможет от эмуляции?

5 часов назад, mantech сказал:

тогда это не сейчас, лишь бы побыстрее выкинуть на рынок, времена не путайте

Бизнес всегда работал на прибыль. Это вы не путайте с СССР-ом. И быстрый выход на рынок, в нормальном бизнесе, был актуален всегда. А те, для кого это было не актуально, те быстро прекращали работать вообще.

5 часов назад, mantech сказал:

Еще раз = если устройство простое, то наверно ничего там нет

"Если устройство простое", то и смысла создания данной темы у ТС бы не было. Так как он просто взял бы и разработал функциональный аналог на современной базе. Не пытаясь даже реверсить. А раз тема создана - значит устройство не простое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 hours ago, khach said:

Обычные компиляторы создавали код, который невозможно было всунтуть в эмбеддед приложения. COM файл имел сегмент кода и даных одинаковый, а в ембеддете код сидел в ROM а данные в RAM. EXE плодил кучу сегметов по количеству библиотек плюс сегмент под main да и с выделением места под данные были проблемы, т.к в старых ембеддед системах RAM часто была статикой малого размера и переменным на стеке не хватало места. Поэтому с компилятором и линкером приходилось изварщаться вручную и как раз ватком это умел.

То, что ватком умеет в бинарники - это прекрасно.

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

Проблему решил - созданием большого бинарника, забитого попкорном на всё адресное пространство.  А потом собственный загрузчик, который грузил тело программы, а сегмент данных отрезал-  как раз брался кусок, который ранее грузанула предыдущая программа.  Так было задумано.  Для перехвата вызовов функций и постепенной их замены на свои.  Реверс.

Не нашёл как это более красиво решить, но метод с обрезанием попкорна исправно работал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 hours ago, makc said:

Это всё зависит от модели памяти, задаваемой при компиляции. Если задавать модель tiny, то всё можно было запихнуть в один сегмент (как это было в COM), получить exe и сделать из него com с помощью, например, exe2com.

Не все вариации exe2com могут размотать EXE-файл в плоский COM'ок.

Борландовские программы очень часто любили релокейшены в EXE-хедеры размещать. При переводе в COM была проблема с адресами данных.   Помню, нашёл какой-то сильно сложный exe2com, который мог разматывать релокейшены и генерил успешный комок.

Ну и плюс видел версию Трубо паскаля, с практически лысым рантаймом, который не вызывает функции ДОС'а.  Что позволяло писать код, который мог грузиться после BIOS'а сразу.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 минут назад, x893 сказал:

ТС давно свалил, а вы всё не успокоитесь.

Думаете решил задачу или забил болт?))))))

1 час назад, repstosw сказал:

Борландовские программы очень часто любили релокейшены в EXE-хедеры размещать.

Ага и еще оверлеи делать, чтоб их)))

1 час назад, repstosw сказал:

который не вызывает функции ДОС'а.  Что позволяло писать код, который мог грузиться после BIOS'а сразу.

О как, и каким образом потом к ФС из этой проги обращаться?)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...