ПО облегчающее реверс инженеринг прошивок ОМК.

Что, товарищ, фигню запостил? Вся фигня и разборки с модераторами по поводу фигни - в этом разделе.
Призрачный Суслик
Прорезались зубы
Сообщения: 214
Зарегистрирован: Ср фев 04, 2026 21:29:19
Откуда: Из норки где-то в России

ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Призрачный Суслик »

Вот тут давнишняя задача - есть некоторое ПО для некоторого устройства использующего Microchip PIC16C65А. Прошивка дизассемблирована (ровно 4800 значащих строк) и корректно ассемблируется в исходный файл. Но при этом ПО не работает нормально и корректно на реальном железе. Есть нюанс, проверка проводилась на PIC16F877, но ничего такого, что есть в 16С65 и отсутствует в 16F877 не замечено (судя по найденным обращениям к регистрам ввода вывода из аппаратной переферии используются только таймеры-счетчики и система прерываний). Регистры из используемых 1:1.

Есть первое предположения, что в "открытую" версию внесена некоторые "опечатки".

Или всё таки влияют некоторые различия 16С65 и 16F877 ?


Задача стоит или найти "опечатку" и устранить, или извлечь из кода алгоритмы работы и передать людям для написания ПО на современных ОМК. Сам я не программист, да и другие люди к проекту близкие тоже и тяжело разбираться в алгоритмах. Вот как бы можно раздербанить программу на какие-то более понятные виды изображения. Квадратики-стрелочки или еще как-то ?

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

Само ПО или его части публиковаться, к сожалению, не будут.
OKF
Это не хвост, это антенна
Сообщения: 1379
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение OKF »

Одни проблемы. Со всех сторон.)
Ну и непонятно. ПО на оригинальном 65 работает как надо? А не работает только на клоне 877?
Просто людей нужно заинтересовать и они всё сделают.)
Призрачный Суслик
Прорезались зубы
Сообщения: 214
Зарегистрирован: Ср фев 04, 2026 21:29:19
Откуда: Из норки где-то в России

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Призрачный Суслик »

Неизвестно. Задача использовать PIC16F877 вместо PIC16C65A стояла с самого начала, поэтому с PIC16C65A проверка не проводилась. На данный момент провести её сложно, хотя и возможно. ПО работало, но "не совсем корректно". В смысле что процессор не зависал, но и нормальной работы согласно документации достигнуть не удалось.

Именно для этого я и ищу ПО, в ручную пытаться "размотать" не получилось. "Безобразно Бешеных Бабок" для нанятия людей "со стороны" не подвезли.
Аватара пользователя
Mursik
Мудрый кот
Сообщения: 1762
Зарегистрирован: Вт мар 28, 2023 21:17:15
Откуда: Universe

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Mursik »

А в PROTEUS-е погонять? Там модель того PIC16C65A есть?
I have a dream...¯\_(ツ)_/¯
Призрачный Суслик
Прорезались зубы
Сообщения: 214
Зарегистрирован: Ср фев 04, 2026 21:29:19
Откуда: Из норки где-то в России

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Призрачный Суслик »

А почитать сообщение по внимательнее ? Там написано ! (для ленящихся читать уточню: "для работы нужна переферия, которая достаточно сложна и имеет не только электрические, но и механические и гидравлические компоненты" ни один симулятор, из известных мне, на такое не способен).
Последний раз редактировалось Призрачный Суслик Ср мар 11, 2026 13:43:13, всего редактировалось 1 раз.
Аватара пользователя
abc
Друг Кота
Сообщения: 3677
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение abc »

Для старых ПИК-ов вполне хватает обычного дизассемблера. Если не умеете - учитесь.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Призрачный Суслик
Прорезались зубы
Сообщения: 214
Зарегистрирован: Ср фев 04, 2026 21:29:19
Откуда: Из норки где-то в России

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Призрачный Суслик »

Всё дизассемблировано давно. Выделены все подпрограммы и зафиксированы все точки входа и выхода в них. Но этого мало - восстановить алгоримы не получается. Нужно ПО , если таковое существует, которое облегчает разбор ассемблерного текста.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение BOB51 »

Никакое ПО не обеспечивает учёта всех особенностей работы внешней периферии.
Эту задачу можно решить только симуляция по алгоритму работы конечного изделия, в котором тот МК с программой используется.
Или садиться в позу ёги заниматься медитационными размышлениями.
8)
Касательно разбора ассемблерного текста...
Листочки бумаги, машинные коды и их "перевод" в мнемоники ассемблера, затем карандаши в лапки и анализ переходов... Далее смотрим чего нарылось...
Такое относительно легко для I8080/85, Z80 и MCS51, у ПИКовых заметно помуторнее перевод из кода в мнемонику.
Но вдруг у кого получится...
:dont_know:
Последний раз редактировалось BOB51 Ср мар 11, 2026 14:05:39, всего редактировалось 2 раза.
Аватара пользователя
abc
Друг Кота
Сообщения: 3677
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение abc »

Всё дизассемблировано давно.
Тем более.
Если есть куски кода, то только знание работы этого МК даст вам возможность заставить работать эти куски на 877.
Также, всю "лишнюю" периферию, что есть в 877, но отсутствует в 65, крайне желательно принудительно отключать при инициализации МК.
Вполне возможно (точно не скажу) что даже отдельные биты в конфиге МК у них имеют разное значение.
Вы хоть это сделали ?

Есть (очень малая) вероятность того, что объяснить, как работает и что делает тот или иной кусок, вам поможет какое-нибудь ИИ-чудо.
Но это такое... почти как эмуляция симуляции трехпрограммника...
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
OKF
Это не хвост, это антенна
Сообщения: 1379
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение OKF »

Так ТС и его окружение ни бе, ни ме в программировании. И он ищет волшебную пилюлю в в виде непонятно чего, но что бы у него работало как ему хочется. ППЦ, конечно.
Аватара пользователя
Муркиз
Друг Кота
Сообщения: 25758
Зарегистрирован: Пн фев 09, 2009 22:19:49
Откуда: Когда-то был прекрасный город для людей

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Муркиз »

Задача стоит или найти "опечатку" и устранить, или извлечь из кода алгоритмы работы и передать людям для написания ПО на современных
А они( алгоритмы) в этом коде вообще-то есть ?
Или это программа из тех, что описана для отхватить бабок от лохов и смыться ? Раз там одни обращение к таймерам.

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

И кто кого в итоге обует ?
Призрачный Суслик
Прорезались зубы
Сообщения: 214
Зарегистрирован: Ср фев 04, 2026 21:29:19
Откуда: Из норки где-то в России

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Призрачный Суслик »

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

Симуляция работы конечного изделия в полной форме очень сложна, даже непонятно на чем симулировать. Это не мигалка светодиодами и даже не экскаватор, всё намного сложнее. Поэтому задача размотать исходный алгоритм работы и представить его в виде по которому можно будет заказать написание нового ПО под новый микроконтролёр и модернизированную переферию. В "старой" перефирии используется немало снятых с производства, хотя еще и относительно доступных микросхем. Да и сам PIC16C65A вроде как снят с производства да и PIC18F877 тоже не "новый" и может довольно быстро исчезнуть.
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение jcxz »

[uquote="Призрачный Суслик",url="/forum/viewtopic.php?p=4796620#p4796620"]Всё дизассемблировано давно. Выделены все подпрограммы и зафиксированы все точки входа и выхода в них.[/uquote]Как вы можете это утверждать если по вашему же утверждению:[uquote="Призрачный Суслик",url="/forum/viewtopic.php?p=4796594#p4796594"]Сам я не программист[/uquote]?
Всё равно что если бы вам дали листок с набором закорючек и сказали, что это текст на суахили. Как вы можете быть в этом уверены, если ни черта не понимаете в суахили?
Ваши "подпрограммы" может быть - просто наборы мусора. Потому как дизассемблер принял данные за код, а код - за данные. "Непрограммист" этого не заметит.
[uquote="Призрачный Суслик",url="/forum/viewtopic.php?p=4796608#p4796608"]"Безобразно Бешеных Бабок" для нанятия людей "со стороны" не подвезли.[/uquote]тогда 2 выхода:
1. Найти/заработать/украсть эти бабки. И нанять.
2. Научиться самому.

Добавлено after 1 minute 26 seconds:
[uquote="Призрачный Суслик",url="/forum/viewtopic.php?p=4796620#p4796620"]Нужно ПО , если таковое существует, которое облегчает разбор ассемблерного текста.[/uquote]Такое ПО существует и находится оно в мозгу программиста. 8)
Аватара пользователя
abc
Друг Кота
Сообщения: 3677
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение abc »

Есть надежда на какое либо преобразование ассемблерного текста в некую алгоритмически понятную форму
Это всё лоховство и недомыслие, навязываемые вам разными ИИшечками. Без обид.
Сейчас глянул их даташиты.
У 65-го РОНы начинаются с адреса 0x0С, а у 877 - с 0x20.
Давайте, скажите мне, что и это уже скорректировано и всё равно нихрена не получается :))

да, сорри, смотрел для 61
Последний раз редактировалось abc Ср мар 11, 2026 14:31:14, всего редактировалось 1 раз.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Призрачный Суслик
Прорезались зубы
Сообщения: 214
Зарегистрирован: Ср фев 04, 2026 21:29:19
Откуда: Из норки где-то в России

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Призрачный Суслик »

Насколько удалось установить, обращение идёт только к портам ввода/вывода к таймеру и задействованы прерывания.

Обращения к регистрам SPI, UART, АЦП и сторожевого таймера не найдено. Или искать не умеем правильно.

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

ПО было написано в 1998-1999 году.

Добавлено after 3 minutes 29 seconds:
Одинаковые адреса там с 20h у обоих первая страница РОНов, а вторая с A0h. Вы что-то не там смотрите.

У PIC16F877 просто 4 набора, а у PIC16C65A - два. Так старшие просто не используются.

Все адреса и управляющие биты были проверены. Тут вопросов нет. Или какие то нюансы или всё таки что-то с программой не то.

Во первых я не один работаю над этим. Во вторых программистом считаю человека, создающего программы, а не понимающего, что на бумажке написаны не каракули. Ассемблер Microchip, немного знаю, книжки соответствующие читал, а не просто так. Естественно тут просто уровня опыта и знаний недостаточно для понимания, что происходит в программе в общем, а не того, что "из ячейки с адресом ХХ переписано в порт с такой то переферии".

Составлялись, сначала списки всех вызовов подпрограмм CALL (АДР.) Выявлялись точки входа. Предполагая, что каждая подпрограмма может иметь ни одну точку входа, примерно группировались зоны вызовов. В этих зонах велся поиск команд "RET" для начала в сторону больших адресов, а так-же команд безусловного и условного перехода на адреса младше адреса входа. Ну собственнотвсё - находился участок памяти обособленный из которого наружу нет ни одного перехода, а внутри есть как минимум одна команда RET и в который ведут один или более CALL. Использовался Microsoft EXEL.
Последний раз редактировалось Призрачный Суслик Ср мар 11, 2026 14:49:05, всего редактировалось 1 раз.
Аватара пользователя
Муркиз
Друг Кота
Сообщения: 25758
Зарегистрирован: Пн фев 09, 2009 22:19:49
Откуда: Когда-то был прекрасный город для людей

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Муркиз »

На каком основании вы уверены, что "алгоритмы" старого ПО будут годны для использовании на новом оборудовании ?

Кстати, такая ошибка является основной для всех доморощенных разработчиков разряда "достаточно знать несколько операторов и систему регистров". Поэтому у них в итоге и ничего не работает.
Последний раз редактировалось Муркиз Ср мар 11, 2026 14:47:24, всего редактировалось 1 раз.
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение jcxz »

[uquote="Призрачный Суслик",url="/forum/viewtopic.php?p=4796640#p4796640"]Во первых я не один работаю над этим.[/uquote]Что тогда мешает скинуться всем коллективом, описать требуемый алгоритм работы устройства и создать соответствующую тему в разделе "Предлагаю работу"?
Даже дизассемблировать ничего не нужно. Тем более, что существующая прошивка всё равно толком не работает (по вашим же утверждениям).
4800 строк - не бог весть какой сложности программа. Особенно если это строки асма, а не си.

PS: Ожидать тут экстрасенса, который магическим образом внедрит в ваше сознание понимание работы программы, которую он даже увидеть не может.... Это мягко говоря - странно.
Призрачный Суслик
Прорезались зубы
Сообщения: 214
Зарегистрирован: Ср фев 04, 2026 21:29:19
Откуда: Из норки где-то в России

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Призрачный Суслик »

Для этого надо и выяснить что так в программе и как ?

Основная задача извлечение как раз алгоритма работы, которого никто не знает. Есть он там, хороший, плохой, никто не знает. Надо узнать. Новый не разработать, тут уже нет очень серьёзных знаний и экспериментальной базы. Это не "мигалка" и не регулятор температуры с "далласовским" датчиком. Всё сложнее и намного.

Если там нет искомого - то увы, а если есть - то всё хорошо. Тут уже и финансирование появится и программиста "нужного" нанять можно.

Была надежда, что есть какое-то ПО, облегчающее, в том или другом виде, анализ программ.
Последний раз редактировалось Призрачный Суслик Ср мар 11, 2026 14:58:25, всего редактировалось 1 раз.
Аватара пользователя
Муркиз
Друг Кота
Сообщения: 25758
Зарегистрирован: Пн фев 09, 2009 22:19:49
Откуда: Когда-то был прекрасный город для людей

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Муркиз »

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

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

Ну а попытки извлечь из последовательности действий правил и закономерностей их применения в коде бесполезно - их там нет. Они там преобразованы в форму инструкций действия по ситуации - а это все равно что у каменщика спрашивать, сколько на это здание кирпича пойдет.
Последний раз редактировалось Муркиз Ср мар 11, 2026 16:40:06, всего редактировалось 2 раза.
Призрачный Суслик
Прорезались зубы
Сообщения: 214
Зарегистрирован: Ср фев 04, 2026 21:29:19
Откуда: Из норки где-то в России

Re: ПО облегчающее реверс инженеринг прошивок ОМК.

Сообщение Призрачный Суслик »

Так в том всё и есть, что в 1998-1999 годах задача была решена людьми по умнее нас, нынешних, результатом чего, стало к данное ПО. Исходники были утрачены вместе со стендовым оборудованием. А прошивка сохранилась.

Почему нет то ? Собственно это перенесенный на двоичную арифметику алгоритм.

Есть , конечно, шанс, что задача решена не была, а ПО написано на "отвали". Вроде в те годы люди по честнее были. Ну вот в этом задача и состоит. Разобраться.
Последний раз редактировалось Призрачный Суслик Ср мар 11, 2026 15:05:28, всего редактировалось 1 раз.
Ответить

Вернуться в «Чистилище»