Plain 220 31 июля Опубликовано 31 июля · Жалоба 1 час назад, jcxz сказал: много кода писалось на ассемблере ...и этот код в таких темах сомнительный, потому что они создаются после того, когда что-то посыпалось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 31 июля Опубликовано 31 июля (изменено) · Жалоба 1 час назад, jcxz сказал: А реверсить изначально ассемблерный код - это совсем не то, что исходно си-шный (после компилятора). Особенно - если его писал опытный человек, умеющий много хитрых приёмов - будет гораздо сложнее. А зачем вообще реверсить код? У устройства есть инструкция, по ней можно понять что и как оно делает и просто сделать такое же по функционалу, сомневаюсь, что устройство - это какой-то навороченный томограф или узи аппарат... А ваш эмулятор не избавляет от реверса схемотехники и периферии... Либо надо разрабатывать такой "процессор", который полностью до последнего сигнала и уровня повторяет исходный. Потому, что: 1 час назад, jcxz сказал: Особенно - если его писал опытный человек, умеющий много хитрых приёмов - будет гораздо сложнее. и он может для защиты или еще чего там задействовать недокументированные функции или какие-то задержки исполнения, которые в эмуляторе не заложены, ибо нафига это там... А т.к. по вашему в код лезть не надо, то и никогда не поймете, что там за навороты и недокументированное использование... Изменено 31 июля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 31 июля Опубликовано 31 июля · Жалоба 1 час назад, mantech сказал: А зачем вообще реверсить код? У устройства есть инструкция, по ней можно понять что и как оно делает и просто сделать такое же по функционалу, сомневаюсь, что устройство - это какой-то навороченный томограф или узи аппарат... Можете сомневаться сколько угодно, но достаточно в устройстве быть какой-то функции, описания алгоритма которой нигде нет, и "просто сделать такое же по функционалу" - уже не получится. Хочется спросить: А много вы такого сделали? "Просто прочитав инструкцию" и тут же сделав? Естественно - не мигалку лампочками, а что-то серьёзное? свежо предание да верится с трудом... Вот перед вами к примеру - кардиограф, с анализом отведений, который анализируя получаемые сигналы, диагностирует различные патологии. И у которого внутри в ПО закрыт математический аппарат обработки. Не раскрываемый нигде (так как "ноу-хау"). И над созданием этого мат.аппарата несколько лет работал коллектив разработчиков+врачей. С клиническими исследованиями и т.п. Просто возьмёте прочитаете инструкцию и повторите??? ну-ну.... на словах д'Артаньяном быть не трудно Или даже пример доступнее: Вот перед вами обычный MP3-проигрыватель. Допустим - описания формата mp3 и исходников - нет. Но есть инструкция(!): "Вставить SD-карту, нажать Play"'. Просто прочитаете инструкцию и повторите? 1 час назад, mantech сказал: А ваш эмулятор не избавляет от реверса схемотехники и периферии... Тема у нас не про смехотехнику, а про программу. Не надо валить с больной головы на здоровую. 1 час назад, mantech сказал: Либо надо разрабатывать такой "процессор", который полностью до последнего сигнала и уровня повторяет исходный. Потому, что: и он может для защиты или еще чего там задействовать недокументированные функции или какие-то задержки исполнения, которые в эмуляторе не заложены, ибо нафига это там... А т.к. по вашему в код лезть не надо, то и никогда не поймете, что там за навороты и недокументированное использование... Что за "недокументированные функции"? Функции чего? Какие-то пустые фантазии.... Защита обычно строится для противодействия чему-то известному её разработчикам. Что актуально и известно в момент разработки. Не строят сферическую защиту в вакууме от всего подряд. К тому же - от каких-то будущих неизвестных угроз. Иначе разработка будет длиться вечно. Во времена разработок на 80188 никто не строил защиту от эмуляции в будущем на процессорах на порядки более мощных. Тогда никто не мог знать - какие угрозы будут в будущем. Так же как и сейчас никто не знает - какие угрозы будут через 30 лет. Вот вы в своих девайсах строите защиту от чего-то неизвестного, чего сейчас нет, но что будет в будущем? А как предугадываете эти будущие угрозы? К прорицателям обращаетесь? PS: Когда-то давно, будучи ещё начинающим, я как раз писал эмулятор своего домашнего ПК (на i8080). И ничего - справился. Запускал на нём потом кучу программ. Много десятков разных. Практически все работали нормально. И это при том, что был я тогда начинающим и совсем зелёным. И при этом вполне осилил эту задачу. И процессор, и периферию и время исполнения эмулировал. А если бы в то время стояла задача к примеру: реализовать свой mp3-декодер, то не справился бы. Поэтому сужу не на пустом месте, а по собственному опыту.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 27 31 июля Опубликовано 31 июля · Жалоба On 7/31/2024 at 8:37 PM, jcxz said: А если бы в то время стояла задача к примеру: реализовать свой mp3-декодер, то не справился бы. Поэтому сужу не на пустом месте, а по собственному опыту.... Да ладно! Не нагнетайте.. В начале 2000-х делал и mp3-декодер и mp3-кодер.. Причем, на BF-537.. Ничего там сложного нет.. 😎 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 44 31 июля Опубликовано 31 июля · Жалоба 3 hours ago, jcxz said: PS: В те далёкие времена (времена 80188) довольно много кода писалось на ассемблере. Особенно для МК. Нифига. Все библиотеки от Advantech и ICP DAS писаны были на Си. Правда, там и самый медленный МК работает на 40 МГц, а есть и на 80 МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 31 июля Опубликовано 31 июля (изменено) · Жалоба 1 час назад, jcxz сказал: И над созданием этого мат.аппарата несколько лет работал коллектив разработчиков+врачей. С клиническими исследованиями и т.п. Просто возьмёте прочитаете инструкцию и повторите??? Ну так разумеется, что не один человек будет заниматься реверсом, а несколько+врачи... 1 час назад, jcxz сказал: Какие-то пустые фантазии.... Защита обычно строится для противодействия чему-то известному её разработчикам. Почитайте про защиты примитивного спектрума 48к, там вся схемотехника была уже известна, но взломщики копьев пообломали там нехило так... 1 час назад, jcxz сказал: Вот вы в своих девайсах строите защиту от чего-то неизвестного, чего сейчас нет, но что будет в будущем? А как предугадываете эти будущие угрозы? К прорицателям обращаетесь? Да все куда проще, закладки в программе, в разных местах с цепочкой привязок к железу, причем чтобы при взломе не просто прога переставала работать, а начинала глючить случайно, сразу и не понять, то-ли взломщик что-то испортил, то-ли работает но не так... Изменено 31 июля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 31 июля Опубликовано 31 июля · Жалоба 1 час назад, tonyk_av сказал: Нифига. Все библиотеки от Advantech и ICP DAS писаны были на Си. Правда, там и самый медленный МК работает на 40 МГц, а есть и на 80 МГц. И что? А все библиотеки для TI DSP c55xx - на ассемблере. И какое отношение имеет частный случай к моей фразе? Я разве говорил "весь код писался на ассемблере"? 1 час назад, mantech сказал: Ну так разумеется, что не один человек будет заниматься реверсом, а несколько+врачи... ....и продлится это год. А повторить с помощью эмуляции (или даже - повторить с внесением некоторых модификаций) - может один программист. И за время кратно меньшее. 1 час назад, mantech сказал: Да все куда проще, закладки в программе, в разных местах с цепочкой привязок к железу У вас богатая фантазия. Это точно. Вы не видели устройства, не знаете что оно делает. А уже нафантазировали там кучу супер-защит. А как показывает практика - такое творят в очень редких случаях. И скорее это признак паранойи, чем реальная необходимость. Да - параноики существуют. Но их не так уж много. Все эти "закладки" и пр. - приводят к резкому увеличению длительности разработки. А значит - увеличивают срок выхода на рынок. Что для коммерческих проектов - очень важно. Также - чем больше такого накодите - тем больше потенциальных багов внесёте в свой код -> сложнее будет отладка и сопровождение, выпуск новых версий. А абсолютной гарантии всё равно не получите - кто сильно захочет - всё равно все ваши закладки найдёт. Поэтому такое творят имхо больше от переизбытка свободного времени. В реальных проектах - никогда не слышал чтобы кто-то занимался такой ерундой - времени и так дефицит и на полезные задачи. И скорее это больше - байки. PS: Я не говорю, что абсолютно весь код нужно запускать под эмулятором. Можно выделить (если это возможно) в коде участки работы с периферией. Например - с какими-то интерфейсами связи. И реализовать это нативным кодом ARM. А основную массу кода - под эмуляцией. Особенно - всю математику. Тогда и требования по синхронизации с реальным временем можно сделать более мягкими. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 43 31 июля Опубликовано 31 июля · Жалоба От задачи зависит- вот недавно поднимали прибор на 8086- радиоизмрительный, как всегда подохла батарейка от старости и слетели все калибровки радиотракта и тракта ПЧ. Копии ОЗУ с батарейной поддержкой конечно не сохранилось. Фирма- производитель три раза перекуплена и никакой поддержки от нее нет. Удалось достать дамп от подобного прибора, но другие диапазоны. Вот в этйо каше и разбирались итеративным методом потихоньку приводя прибор в живое состояние и калибруя те массивы в памяти, которых разобрались. Без использования ICE c заглядыванием в реальное поведение железа ничего бы не вышло. Понятно, что был и дизассемблер, и эмулятор софтовый тоже использовался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 44 1 августа Опубликовано 1 августа · Жалоба Глянул Протеус. И модель рабочая: И отладка: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 1 августа Опубликовано 1 августа (изменено) · Жалоба 9 часов назад, jcxz сказал: Поэтому такое творят имхо больше от переизбытка свободного времени. В реальных проектах - никогда не слышал чтобы кто-то занимался такой ерундой - времени и так дефицит и на полезные задачи. И скорее это больше - байки. Байки-байками, а в те времена такое было постоянно, в более-менее дорогих аппаратах, тогда это не сейчас, лишь бы побыстрее выкинуть на рынок, времена не путайте, это сейчас маркетологи+быдлокодеры в тренде.... Сам видел защиты медоборудования по переливанию крови из пиндосии. Про спектрум уже приводил пример, а это просто игрушка вообще была))) Еще не забывайте, что никаких битов защиты тогда не было, поэтому приходилось кодерам извращаться со всякими Alcatraz'ами и иже с ними))) 9 часов назад, jcxz сказал: У вас богатая фантазия. Это точно. Вы не видели устройства, не знаете что оно делает. А уже нафантазировали там кучу супер-защит. Еще раз = если устройство простое, то наверно ничего там нет, в крайнем случае привязка к какому-нить серийнику, но тогда скопировать его тоже большого труда не составит на совр. эл. базе, а если сложное, то выше уже написал... Разумеется, это только ИМХО, но пиндосов я знаю, в смысле их оборудование, может тут конечно европа какая-нить, там паранойи поменьше))) Изменено 1 августа пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 1 августа Опубликовано 1 августа · Жалоба 5 часов назад, mantech сказал: Байки-байками, а в те времена такое было постоянно, в более-менее дорогих аппаратах, Допустим даже там оно есть. Но как это поможет от эмуляции? 5 часов назад, mantech сказал: тогда это не сейчас, лишь бы побыстрее выкинуть на рынок, времена не путайте Бизнес всегда работал на прибыль. Это вы не путайте с СССР-ом. И быстрый выход на рынок, в нормальном бизнесе, был актуален всегда. А те, для кого это было не актуально, те быстро прекращали работать вообще. 5 часов назад, mantech сказал: Еще раз = если устройство простое, то наверно ничего там нет "Если устройство простое", то и смысла создания данной темы у ТС бы не было. Так как он просто взял бы и разработал функциональный аналог на современной базе. Не пытаясь даже реверсить. А раз тема создана - значит устройство не простое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 1 августа Опубликовано 1 августа · Жалоба 22 hours ago, khach said: Обычные компиляторы создавали код, который невозможно было всунтуть в эмбеддед приложения. COM файл имел сегмент кода и даных одинаковый, а в ембеддете код сидел в ROM а данные в RAM. EXE плодил кучу сегметов по количеству библиотек плюс сегмент под main да и с выделением места под данные были проблемы, т.к в старых ембеддед системах RAM часто была статикой малого размера и переменным на стеке не хватало места. Поэтому с компилятором и линкером приходилось изварщаться вручную и как раз ватком это умел. То, что ватком умеет в бинарники - это прекрасно. Но несколько лет назад столкнулся с тем, что ватком(и другие тулчейны - и подавно) не может объявлять внешнюю переменную по произвольному адресу. Проще говоря, мне нужно было запустить программу и из-под неё делать перехваченные вызовы из другой области. Проблему решил - созданием большого бинарника, забитого попкорном на всё адресное пространство. А потом собственный загрузчик, который грузил тело программы, а сегмент данных отрезал- как раз брался кусок, который ранее грузанула предыдущая программа. Так было задумано. Для перехвата вызовов функций и постепенной их замены на свои. Реверс. Не нашёл как это более красиво решить, но метод с обрезанием попкорна исправно работал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 1 августа Опубликовано 1 августа (изменено) · Жалоба 22 hours ago, makc said: Это всё зависит от модели памяти, задаваемой при компиляции. Если задавать модель tiny, то всё можно было запихнуть в один сегмент (как это было в COM), получить exe и сделать из него com с помощью, например, exe2com. Не все вариации exe2com могут размотать EXE-файл в плоский COM'ок. Борландовские программы очень часто любили релокейшены в EXE-хедеры размещать. При переводе в COM была проблема с адресами данных. Помню, нашёл какой-то сильно сложный exe2com, который мог разматывать релокейшены и генерил успешный комок. Ну и плюс видел версию Трубо паскаля, с практически лысым рантаймом, который не вызывает функции ДОС'а. Что позволяло писать код, который мог грузиться после BIOS'а сразу. Изменено 1 августа пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 1 августа Опубликовано 1 августа · Жалоба ТС давно свалил, а вы всё не успокоитесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 1 августа Опубликовано 1 августа · Жалоба 29 минут назад, x893 сказал: ТС давно свалил, а вы всё не успокоитесь. Думаете решил задачу или забил болт?)))))) 1 час назад, repstosw сказал: Борландовские программы очень часто любили релокейшены в EXE-хедеры размещать. Ага и еще оверлеи делать, чтоб их))) 1 час назад, repstosw сказал: который не вызывает функции ДОС'а. Что позволяло писать код, который мог грузиться после BIOS'а сразу. О как, и каким образом потом к ФС из этой проги обращаться?))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться