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

Вопрос о возможности декомпиляции ПЛИС

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

Дело в том, что посление годы схемы устройств стали представлять из себя не графическое изображение электрических связей между отдельными электронными компонентами, а набор многоножечных прямоугольников c указанием функциональных связей. Получается, что я еще могу узнать куда на ПЛИС системный контроллер (HD64F2378R) подал тот или иной сигнал, а вот что с этим делом сделала ПЛИС это уже темный лес! Мало того раньше на принципиальных схемах были указаны какой контакт микрухи куда идет, и зная это можно было хоть связи прозвонить. Сегодня и это уже не всегда указывается, так как производитель решил, что для ремонта принципиальная схема не нужна, и вполне достаточно иметь блок-схему со схемой связей между разъемами плат. В такой ситуации не то что на компонентном уровне не отремонтируешь аппарат, но часто и с платой не определишься, до тех пор пока не найдешь второй исправный аппарат. Ведь импульсики то бегают везде, а ОНО не работает, тихо моргая красной лампочкой, или вообще не мограя, а тупо зависая.

 

Скажите мне пожалуйста - можно ли по конфигурационной прошивке определить внутреннее содержание ПЛИС?

Конкретно меня интересует возможность декомпиляции Cyclone III через содержание EPCS-16

 

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


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

Да.

Но трудоемкость (цена) такая, что сводит ответ к "нет".

 

PS: Если cyclone-III LS, то добавится вероятность шифрации прошивки.

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


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

нет

 

А чем это обусловлено?

Насколько я понимаю, конфигурационная память, каждый раз когда включается устройстиво, определят что будет делать ПЛИС, и какие контакты будет использовать для этого. Кроме того, разработка проекта завершается процессом компиляции, ну а если есть компиляция то неужели нет декомпиляции?

 

Да.

Но трудоемкость (цена) такая, что сводит ответ к "нет".

 

Если да, то какими програмными средствами это достигается?

Ну а про трудоемкость, я хорошо представляю.

 

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

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


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

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

Не хочу сказать, что это невозможно вообще и для одного человека-оркестра в частности,

просто сильно сомневаюсь в целесообразности.

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


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

Насколько я понимаю, конфигурационная память, каждый раз когда включается устройстиво, определят что будет делать ПЛИС, и какие контакты будет использовать для этого. Кроме того, разработка проекта завершается процессом компиляции, ну а если есть компиляция то неужели нет декомпиляции?

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

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


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

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

 

То что плис это большой набор различной логики для меня это не новость. Я все-таки только последние 20 лет из 35 трудового стажа занимаюсь ремонтом. Меня больше интересует информация о том каким образом в конфигурационной памяти упаковывается информация.

Я допускаю, что мои дилетанские вопросы могут вызвать у специалиста по ПЛИСам некоторую иронию, которая выражается в ответах вопросом на вопрос, но мне бы хотелось услышать аргументированный ответ. Я не понимаю, почему по прошивке того же HD64F2378R я могу перевести байты памяти в буквы ассемблера, а c ПЛИС эта задача не имеет решения? Особенно если учитывать, что и в том и другом случае, работа каждого определяется программой, а байтовые объемы самих программ соизмеримы. Чем уж так ассемблер контроллера отличается от Verilogа или VHDL у ПЛИС? Ведь в обоих случаях, работа этих микросхем определяется расположением битов в байтах памяти, но для прошивок контроллеров есть дисассемблер типа IDA Pro, а для плисов подобного нет. Мне кажется, что для ПЛИС решение такой задачи должно быть даже проще.

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


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

Мне кажется, что для ПЛИС решение такой задачи должно быть даже проще.

Если не нравится ответ, зачем было спрашивать?

 

Если найдёте документацию на bitstream или софтину для декомпиляции, не обязательно с сайта альтера, поделитесь, пожалуйста.

Я более, чем уверен, что готового средства нет, быстро его не сделать. Дёшево тоже не выйдет, даже если кто-то возьмётся работать за еду (много лет). Кроме того, содержимое прошивки - это второй инструмент разработчика после предоплаты. Узнать в какую сторону сконфигурирована ножка, на ввод или вывод не сложно, а почему эта сволочь отказывается моргать зеленой лампочкой, а светит красной, может стоить больше, чем это обошлось автору - он-то пользовался готовыми компиляторами.

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


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

но мне бы хотелось услышать аргументированный ответ. Я не понимаю, почему по прошивке того же HD64F2378R я могу перевести байты памяти в буквы ассемблера, а c ПЛИС эта задача не имеет решения?

разве я плохо аргументировал?

Чем уж так ассемблер контроллера отличается от Verilogа или VHDL у ПЛИС?

тем что ассемблер для проца, это набор команд выполняющихся на железе, с жестко заданной функциональностью. Между ними есть строгое соответствие. А прошивка для ПЛИС это всего лишь битики управления статическими мультиплексорами и содержимое блоков памяти плис. И строгой зависимости того как эти битики соответствуют тому или иному исходному коду/алгоритму и т.д. нет. На результат влияют настройки синтезатора, какая машина использовалась, функциональность проекта, версия софта и т.д.

 

Мне кажется, что для ПЛИС решение такой задачи должно быть даже проще.

Если найдете, особенно для плисов класса третьего сыклона, подавайте заявку в нобелевский комитет, вас признают %)

 

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


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

Мне кажется, что для ПЛИС решение такой задачи должно быть даже проще.

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

А что касается софта: place & route и assembly каждая фирма для своих ПЛИС пишет сама. Декомпиляторы им писать незачем. А другие не пишут декомпиляторы потому что с получившегося нетлиста логику все равно не понять (трудоемкость выше чем все самому заново написать).

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


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

AALEGYR

В общем виде задача решаема. А в частном - только после решения в общем. Это как бы затрудняет процесс. :)

 

В принципе, после выявления того, как внутри ПЛИС соединены ее внутренние элементы, можно понять, как она функционирует, но это задача примерно того же плана, что и понимание, как работает программа после дизассемблиования.

Допустим, Вы увидите, как соединены примитивы, и сможете проследить путь сигнала от входа к выходу. Но разве это поможет пониманию? Точно так же, глядя на дизассемблированный код, Вы будуте долго разбираться, как работает программа. А ведь могут еще быть применены специальные средства для защиты от такого "понимания".

Честно говоря, иногда сложно бывает понять принципы работы некоторых устройств, даже имея принципиальную схему. И не только мне. На днях приезжал ко мне представитель завода, на котором делают серийно платы, что я разрабатывал. Просил методику поиска неисправностей. Куда смотреть, что тыкать. При этом полный комплект КД у них есть, включая схему. Нету только волшебных знаний. Помочь я ему не смог, да и не сильно хотел, признаться (но это уже другой вопрос). Так вот, реверс инжиниринг - это отдельная область, просто так туда не попасть.

В общем, если Вы не профессионал в этом деле, то я бы Вам не советовал тратить время. Ну, а если Вы - профессионал, то таких вопросов бы не задавали. :)

Не обижайтесь, ремонтники - народ - не сахар, сами знаете, наверное, как ремонтных форумах относятся к вопросам со стороны. :)

 

Вам же надо быстро отремонтировать? У Вас ведь поток? Ремонтируемые изделия меняются? Тогда могу Вам посоветовать применить метод замены ПЛИС целиком.

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

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


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

Вам же надо быстро отремонтировать? У Вас ведь поток? Ремонтируемые изделия меняются?

 

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

Ремонтируемые изделия меняются, но меняются по разному, и с разной скоростью. В экономической категории, ремонтируемые изделия меняются за 365 дней, с гарантийной на постгарантийную, а вот с технической точки зрения, изделия меняются за более длительной время. Вы же, как разработчики c опытом, не можете себе позволить каждый год реализовывать новый проект на новой элементной базе, сознательно похерив свои наработки, и уподобиться молодому специалисту.

Так вот, реверс инжиниринг - это отдельная область, просто так туда не попасть.

В общем, если Вы не профессионал в этом деле, то я бы Вам не советовал тратить время. Ну, а если Вы - профессионал, то таких вопросов бы не задавали.

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

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

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

 

P.S.

Не обижайтесь, ремонтники - народ - не сахар, сами знаете, наверное, как ремонтных форумах относятся к вопросам со стороны.

 

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

 

 

 

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


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

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

Это Вы намекаете, что уже и исходников не найти даже при желании? Т.е. уже невозможна поддержка ремонтника со стороны разработчика этой техники?

Ну, тогда тем более - замена. Такая ситуация мне напоминает ремонт старой иномарки. Запчасть копеечная, но найти можно только на разборке, не новую, да еще и за бешеные бабки. Оно Вам надо? Понятно, что с новой машиной проблемы сходные, но только там все новое: и машина, и запчасти. Это другое качество.

В общем, советую не поддерживать на плаву бесконечно долго старую аппаратуру, а все-таки переходить на новую. Ее и чинить. :)

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


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

Это Вы намекаете, что уже и исходников не найти даже при желании? Т.е. уже невозможна поддержка ремонтника со стороны разработчика этой техники?

Ну, тогда тем более - замена. Такая ситуация мне напоминает ремонт старой иномарки. Запчасть копеечная, но найти можно только на разборке, не новую, да еще и за бешеные бабки. Оно Вам надо?

 

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

"Иномарки", с которыми мне приходится иметь дело, очень часто имеют даты изготовления того же года, что указан в ремлисте на дате приема аппарата в ремонт, а некоторые даже не упевают увидеть своих покупателей. Такие аппараты ремонтируются заменой плат, и проблем с их ремонтом почти нет, ни для меня ни для потребителя, так как производитель несет все расходы, cвязанные со своими гарантийными обязятельствами. Но как только проходит 365 дей с момента продажи, или 730 дней от даты изготовления, ремонт аппарата переходит из категорию гарантийного, в категорию платный. И сразу стоимость ремонта обходится потребителю в 70-80% цены нового аппарата, к которым добавляется еще 50-100$ , которые исполнитель ремонта возмет за настройку аппарата, дабы новая плата не конфликторала с той периферией, с которой ей придется работать.

Чтобы было понятно, как это получается можете себе представить ситуацию когда вы купили системный блок компа, а через год, вам предлагается отремонтировать его заменой материнки, вместе процессором, блоком питания, и всем остальным, что находится внутри корпуса. Я не думаю, что в этой ситуации Вас устроит мой совет перейти на новую модель, и не тратить свои нервы и деньги на поддержание УЖЕ устаревшей.

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

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

 

P.S.

Чтобы оценить уровень поддержки ремонтника со стороны производителя техники прикрепляю две картинки. Хотелось бы услышать как глядя на это можно определится с причиной неисправности , зная что собака роется именно тут, а ремонт на уровне замены платы обойдется владельцу в 70-80% цены нового аппарата (или в 30 000 рублей)?

post-41965-1297603874_thumb.png

post-41965-1297603953_thumb.png

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

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


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

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

Говоря вашими же терминами: интересно чем вам поможет нетлист северного моста при ремонте материнки?

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


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

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

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

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

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

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

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

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

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

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