Jump to content

    
vitus_strom

криптование исходников в квартусе

Recommended Posts

Приветствую,

понадобилось мне закрыть свои исходники от чтения, лицами к проекту не причастными . Проект в квартусе 18.0.  Хотелось бы конечно закриптовать по стандарту IEEE 1735, но не совсем понял есть ли такая возможность в Quartus Standart Edition 18.0.

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

Заранее благодарен.

Share this post


Link to post
Share on other sites

ИМХО, достаточно удалить все комментарии, и не только чужой кто, но и сам через пару-тройку лет не поймёшь, что там понаписал и хотел сказать этим кодом.

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

Share this post


Link to post
Share on other sites

А для Xilinx такой же технологией никто не владеет? Когда-то пробовал найти, но по документации ничего у них не обнаружилось.

Share this post


Link to post
Share on other sites
5 hours ago, MrGalaxy said:

ИМХО, достаточно удалить все комментарии, и не только чужой кто, но и сам через пару-тройку лет не поймёшь, что там понаписал и хотел сказать этим кодом.

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

Share this post


Link to post
Share on other sites

Приветствую!

11 minutes ago, des00 said:

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

В  RTL коде  даже с обфускатором  решается,  сложнее но решается.  

Если не стоит задача именно RTL передавать то лучше смотреть  на вариант с нетлистом. Это значительно сложно чем обфусцированный RTL

 

Удачи!  Rob.

Share this post


Link to post
Share on other sites
1 minute ago, RobFPGA said:

В  RTL коде  даже с обфускатором  решается,  сложнее но решается.  

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

самое просто, взять сложную корку в Альтере и посмотреть обфусцированную идеалку для моделирования. По ней восстановить функциональность) Я пробовал. то еще занятие)

Share this post


Link to post
Share on other sites

Приветствую!

16 minutes ago, des00 said:

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

У меня  был опыт ковыряния  обфуцированого VHDL  RTL, ~20 MB исходников. Причем часть исходников генерированные автоматом из BD и GUI для дизайна FSM. Все модули и пакеты  в одном файле без  всякого форматирования и именами как раз в виде hash. :wacko2::shok:
Сначала страшно было -  а потом написал несколько хелперов  для SublimeText и потихоньку (с помощью  ModelSim и  какой то матери :wink2:) расковырял все, разобрался  что по чем, нашел и поправил то что мне нужно было. Естественно  были как некая исходная инфа так и хорошая мотивация для всего этого безобразия :biggrin:

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
14 hours ago, RobFPGA said:

Приветствую!

У меня  был опыт ковыряния  обфуцированого VHDL  RTL, ~20 MB исходников. Причем часть исходников генерированные автоматом из BD и GUI для дизайна FSM. Все модули и пакеты  в одном файле без  всякого форматирования и именами как раз в виде hash. :wacko2::shok:
Сначала страшно было -  а потом написал несколько хелперов  для SublimeText и потихоньку (с помощью  ModelSim и  какой то матери :wink2:) расковырял все, разобрался  что по чем, нашел и поправил то что мне нужно было. Естественно  были как некая исходная инфа так и хорошая мотивация для всего этого безобразия :biggrin:

ну значит ваше реверсинжениринговое кунфу круче моего

Share this post


Link to post
Share on other sites

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

А хуже нетлиста может быть только нетлист с флатованой иерархией

Share this post


Link to post
Share on other sites
3 hours ago, Aleх said:

Для восстановления надо все время сверяться с LEC тулом, а потом еще и пытаться понять, для чего этот код.

Эм... А LEC тут каким боком? Я понимаю что инструмент сильный, но с чем сравнивать, если есть только нетлист?

3 hours ago, Aleх said:

А хуже нетлиста может быть только нетлист с флатованой иерархией

Это да, это я видел. Испугался и удалил)))

Share this post


Link to post
Share on other sites
36 minutes ago, Nick_K said:

Эм... А LEC тут каким боком? Я понимаю что инструмент сильный, но с чем сравнивать, если есть только нетлист?

Нетлист сравнивается с восстановленным RTL. Доверяй, но проверяй, как говорится.

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

Share this post


Link to post
Share on other sites
12 minutes ago, Aleх said:

Нетлист сравнивается с восстановленным RTL. Доверяй, но проверяй, как говорится.

А - это понятно. Я не понял в контексте данного треда, с чем сравнивать, если только один шифрованный файл.

А ещё мне кто-то говорил, что через LEC можно проверить констрейны. Но видно или я был невнимателен, либо слишком пьян)

Share this post


Link to post
Share on other sites
21 час назад, RobFPGA сказал:

Если не стоит задача именно RTL передавать то лучше смотреть  на вариант с нетлистом. Это значительно сложно чем обфусцированный RTL

Вариант с нетлистом подразумевает привязку к конкретному семейству ПЛИС (для которого нетлист синтезировался)?

Share this post


Link to post
Share on other sites
4 hours ago, Aleх said:

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

А хуже нетлиста может быть только нетлист с флатованой иерархией

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

В моей системе ценностей обфускатор не только заменяет все имена, удаляет пробелы, но и раскрывает функции/таски, но и вытаскивает все в файл верхнего уровня. Этакий псевдосинтез)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.