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

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

dvladim, а чем может помочь дизассемблированная прошивка контроллера, переведенная с уровня набора мнемоник команд на уровень диаграммы алгоритма выполнения программы?

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

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

 

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

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


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

Простите меня, но здесь Вы не найдёте ответов на эти давно больные (на значительно более высоком уровне) вопросы. Ответом будет только Нет. Какими бы благими намерениями (а ими, как известно, вымощена дорога в Ад) вы не руководствовались. Проведите поиск на этом и других форумах по теме защита прошивок или слизывание проектов, например. И Вы всё поймёте. Эти данные завод изготовитель достаточно хорошо защищает даже если прошивка и открыта для чтения (Cyclone) (путём перехвата битстрима). Для проиводства ремонтных работ овчинка совершенно не стоит выделки. Даже в приципе. Для слизывания секретов - требует длительной работы и очченььь серьёзных затрат. Техника ориентируется на замену блоков. Причём давно. И это - уже не изменить. Как бы ни хотелось владельцам вернуть случайно выведенный из строя дорогой аппарат..... Особенно, если это сложнее мигалки с лампочками или простого шинного порта. Прислушайтесь к совету о замене ПЛИС. Дельный совет, по-моему.

 

С уважением Adv.

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


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

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

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

А глядя на структурку в ФПГА можно только пофантазировать - как и что туда влепил программист. Без тестовых эпюр даже исправность выводов проверить слабореально..

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


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

dvladim, а чем может помочь дизассемблированная прошивка контроллера, переведенная с уровня набора мнемоник команд на уровень диаграммы алгоритма выполнения программы?

Да не будет у вас алгоритма. Даже для получения нетлиста затраты огромны. Именно это все и пытаются вам сказать.

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

Но если чужое мнение вас не убедило - то успехов. Как сказал когда-то SM "используя чип-эдитор и хекс-эдитор все можно поднять".

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


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

Для проиводства ремонтных работ овчинка совершенно не стоит выделки.

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

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

Прислушайтесь к совету о замене ПЛИС. Дельный совет, по-моему.

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

 

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

Так на первом листе, в верхнем левом углу написано что это Block Diagrams. Ну а за ней в документации представлена только Frame Wiring, то что Вы назвали схемой межблочных разъемов.

 

Да не будет у вас алгоритма. Даже для получения нетлиста затраты огромны. Именно это все и пытаются вам сказать.

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

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


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

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

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

 

Это столько НЕ стоит. Стоит ЗНАЧИТЕЛЬНО (на порядок, как минимум) дороже. И на такое ходят не в одиночку. И НЕ всё - невозможно!

Или всё - или ничего. И это намного дольше - не на месяц! На ТАКОМ "ремонте" - не заработаешь.

 

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

 

Да. Верно. Но имеющий уши да услышит первое (см. выше)

 

С извинениями Adv.

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


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

как и чем подобные вопросы решаются с другими типами ПЛИС и с другими производителями?

Теоретически вопрос решаем только с микросхемами фирмы Xilinx. В среде ISE есть возможности ручного редактирования логики и внутренних соединений, а значит можно методом "проб и ошибок" сопоставить bitstream с внутренней прошивкой микросхемы. Несколько упростить решение этой задачи можно путем дизассемблирования утилиты bitgen, делающей из нетлиста и некоторого описания микросхемы (можно декриптовать) файл прошивки - bitstream. Сколько на это может потребоваться времени, я скромно промолчу.

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


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

Для altera теоретически задача тоже решается.

Может и не все, но многое можно сделать на VHDL с констрейнами. Как НЕ съевший всех устриц уверен, что сделать декомпилятор нетлиста из битстрима можно (but why?!).

Другое дело, что вопросы на эту тему часто начинаются с "сами мы не местные", да и перед "срубившими бабок" мужиками как-то неудобно.

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


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

Это столько НЕ стоит. Стоит ЗНАЧИТЕЛЬНО (на порядок, как минимум) дороже. И на такое ходят не в одиночку. И НЕ всё - невозможно!

 

У каждого свои тараканы в голове. Да и понятие стоимости у каждого свое. Я вот тоже не думаю, что стоимость ByteBlaster II у производителя должна быть равна розничной стоимости сотового телефона со встроенным телевизором и ЧМ приемником, или стоимости электронной книжки с цветным 7-и дюймовым дисплеем и мультимедийными функциями. Но видя прайсы на то и другое, я не сомневаюсь, что стоимость платки с однобаксовой микросхемой может быть равна стоимости платки с несколькими взросыми ПЛИС и парой контроллеров.

Ну а по поводу "на такое ходят не в одиночку" могу сказать, что я рад бы встретить подобных мне энтузиастов, но они мне пока не попадаются. :(

 

Теоретически вопрос решаем только с микросхемами фирмы Xilinx. В среде ISE есть возможности ручного редактирования логики и внутренних соединений, а значит можно методом "проб и ошибок" сопоставить bitstream с внутренней прошивкой микросхемы.

 

rloc, спасибо за информацию. Тем более что плисы Xilinx тоже используются в моей аппаратуре.

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


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

Для altera теоретически задача тоже решается.

Может и не все, но многое можно сделать на VHDL с констрейнами. Как НЕ съевший всех устриц уверен, что сделать декомпилятор нетлиста из битстрима можно (but why?!).

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

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


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

У каждого свои тараканы в голове.

 

 

Именно. Раз сходивший по этому пути не пойдёт по нему вторично. Удач.

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


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

Ну а по поводу "на такое ходят не в одиночку" могу сказать, что я рад бы встретить подобных мне энтузиастов, но они мне пока не попадаются. :(

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

 

ЗЫ. Как уже говорил, если реализуете для ПЛИС класса третьего сыклона, подавайте на нобелевку. И небольшой совет, не сравнивайте ПЛИС и МК, это совершенно разного поля ягоды.

 

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


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

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

 

Если отвлечься от темы "хочу исходник из битстрима", вопрос к топикстартеру, хорошо получили Вы исходник, дальше что?

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

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

 

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

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


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

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

Попробуйте выяснить по служебным сигналам (nSTATUS, CONF_DONE, DATA0, DCLK, nCONFIG и т.д.) живая ПЛИСка хотя бы на этом уровне. Т.е. грузится или нет, пытается ли грузиться. Это поведение документировано и не зависит от потрохов ПЛИС. Если тут будет видно, что не работает, то менять её, и все дела.

 

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

 

Конечно, это потребует необходимости разобраться с азами САПРа (Квартуса) и обзавестись байт-бластером (можно изготовить самому на макетке, там разъёмы, несколько резисторов и буфер). Но это несоизмеримо проще, чем даже разбираться в логике дизайна, когда у вас есть сорцы, не говоря уже о том, чтобы поднять логику работы из низкоуровневого нетлиста, который ещё надо получить. И при этом даже не нужно будет изучать HDL - достаточно будет в графическом редакторе квартуса нарисовать схемку, сам редактор очень простой.

 

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

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


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

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

Я занимался ремонтом и обсжуживанием РЭА более 35 лет. И уверен что в эксплуатации ремонт плат экономически нецелесообразен посколку ремонт дороже изготовления новой. А после ремонта плата по надежности уже не лезет ни в какие ворота и в ответственные места связанные с жизнью людей ее ставит уже нельзя.

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


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

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

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

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

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

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

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

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

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

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