реклама на сайте
подробности

 
 
> bitstream -> netlist -> синтезируемый hdl, Насколько это актуально?
efg
сообщение May 11 2018, 12:11
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 34
Регистрация: 11-05-18
Пользователь №: 103 956



Предлагаю обсудить насколько актуальным и коммерчески применимым может быть возможность создания полноценно синтезируемого hdl только по прошивке fpga. Самое очевидное применение это модификация уже готовых closed source устройств. Подобный полностью автоматический инструментарий для virtex 5,6,7 неспешно разрабатывается для собственных (не напрямую коммерческих) целей, точные нетлисты и lut эквиваленты доступны уже достаточно давно. Дальнейшее развитие было бы значительно быстрее при каком либо коммерческом применении.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
efg
сообщение May 13 2018, 09:44
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 34
Регистрация: 11-05-18
Пользователь №: 103 956



Спасибо за ответы.
Поясню подробнее: я подразумеваю создание ncd (для ise) файла идентичного пршивке, значит bitgen из него создаст идентичный до каждого бита файл.
Редактировать нетлист врчную затруднительно поэтому нужны hdl файлы соотвествующие ему логичеки, схематически и по требуемым задержкам. Т.е при синтезе стандартными средствами ise будет получаться прошивка аналогичная оригинальной которую сразу можно использовать на реальном устройстве. Среди элементов автоматизировано можно распознать простые схемы понятного назначения, вероятные независимые блоки, кандидаты на известные ядра (частично распознавание уже реализовано). Кроме этого легко выделить части жестко привязанные к изначальному типу плис отдельно и остальную легко переносимую логику. Для реверс инженеринга (и не только) можно добавлять внутрь прошивки живого железа дополнительные блоки анализаторы и уже вручную разбираться как что работает на реальных примерах без необходимости разбираться в обфусцированых hdl кодах.
Далее названия с опечатками специально...
Цитата(MegaVolt @ May 11 2018, 16:27) *
Если смотреть на обычные программы то дезассемблирование является аналогом предложенного к обсуждению.
Соответственно можно предположить что для восстановленноых HDL может быть такое же применение.
- Взлом чужих прошивок. (по хорошему должна быть поддержка внесения мелких изменений в исходный битстрим). HDL только для облегчения анализа.

Ближе к attach+debug а не просто дизассемблированию, а также аналог hex-rays (asm -> c). Любые изменения можно вносить стандартными средствами ise для v5,6,7 или даже перенести на другие плис. Я не ограничиваюсь xlinx, просто в данный момент для них уже многое сделано и сам ise хороший донор данных.
Цитата(MegaVolt @ May 11 2018, 16:27) *
- Генерация кастомных прошивок для защиты своего проекта. Когда кодовые данные зашиваются прямо в битрим без раскладки. Аналог 1ого применения но для своей прошивки.

Цитата(RobFPGA @ May 11 2018, 17:30) *
Это можно и нужно закладывать на уровне дизайна и частично можно делать уже сейчас имеющимися средствами.

Я не очень понял что имеется в виду и что не получится сделать сейчас в полностью своем проекте на ise/vivdo/quatus? Кстати паралельно с реверсным процессом по возможности делается нормальный процесс (p&r netlist)->verify->timing analyse->bitstream без использования ПО производителя, аналогично на v5,6,7
Цитата(RobFPGA @ May 11 2018, 17:30) *
из gate-level "поднять" наверх что то вменяемое наверно будет нельзя - уж больно сильно размазывается логика дизайна по гейтам.
А ковырять gate-level то еще удовольствие.

Цитата(Shivers @ May 11 2018, 19:04) *
Конечно, результат будет то же что и обфусцированый верилог - разобраться что есть что, очень тяжело. С другой стороны, такой верилог гораздо информативнее и компактнее нетлиста: если кто то задался целью реверс инжиниринга, подобный конвертер будет крайне полезен.

Вручную заниматься hdl эквивалентом gate-level я конечно не предлагаю, тем более просто в тексте без живого железа. С текстом можно работать в структурированном виде с кандидатами на блоки и ядра. Вариантов распознанных кандидатов будет сильно больше одного, особенно в ранних версиях, но в любом случае это лучше жуткого мяса из лутов и триггеров. Кандидат подразумевает полную синтезируемость и работоспособность проекта, соотвественно и возможность проверки на железе. Алгоритмы восстановления осмысленных блоков сами являются частью другого "материнского" проекта и втч. для их проработки и развития я ищу возможности коммерческого применения.

Высказывайте предложения какую прошивку от реального устройства разобрать и опубликовать здесь результаты
Пока только vitex lx 5 6 7, впринципе можно spatan6, kitex7,atix7. Само собой устройство не должно быть засекречено и прошивка (bin,bit,xsvf,mcs) не зашифрована и доступна автору предложения. Результаты не в ближайший месяц, я уже упоминал что много мелочей для полноценного ncd не готово, настройки от pci-e и gtx буду делать в последнюю очередь.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 02:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016