vitus_strom 0 Posted November 16, 2020 · Report post Приветствую, понадобилось мне закрыть свои исходники от чтения, лицами к проекту не причастными . Проект в квартусе 18.0. Хотелось бы конечно закриптовать по стандарту IEEE 1735, но не совсем понял есть ли такая возможность в Quartus Standart Edition 18.0. На данном решении не настаиваю, если есть другие методы буду рад если посоветуете что то. Если кто то сталкивался тоже буду рад совету. Заранее благодарен. Quote Ответить с цитированием Share this post Link to post Share on other sites
StewartLittle 0 Posted November 16, 2020 · Report post Ответил в личку. Quote Ответить с цитированием Share this post Link to post Share on other sites
MrGalaxy 0 Posted November 18, 2020 · Report post ИМХО, достаточно удалить все комментарии, и не только чужой кто, но и сам через пару-тройку лет не поймёшь, что там понаписал и хотел сказать этим кодом. Если мне приходится отлаживать свой проект на другом предприятии, работаю или с флешки, или в конце командировки удаляю проект, оставляю только скомпилированную прошивку. Quote Ответить с цитированием Share this post Link to post Share on other sites
alexadmin 0 Posted November 18, 2020 · Report post А для Xilinx такой же технологией никто не владеет? Когда-то пробовал найти, но по документации ничего у них не обнаружилось. Quote Ответить с цитированием Share this post Link to post Share on other sites
des00 0 Posted November 18, 2020 · Report post 5 hours ago, MrGalaxy said: ИМХО, достаточно удалить все комментарии, и не только чужой кто, но и сам через пару-тройку лет не поймёшь, что там понаписал и хотел сказать этим кодом. это если навыки реверс инженеринга слабые, а так, из кода написанного человеком, даже без комментариев, структура неплохо вытаскивается. Не быстро, но делается. А вот если код пропустить через хороший обфускатор, тогда да, задача почти не решается Quote Ответить с цитированием Share this post Link to post Share on other sites
RobFPGA 0 Posted November 18, 2020 · Report post Приветствую! 11 minutes ago, des00 said: это если навыки реверс инженеринга слабые, а так, из кода написанного человеком, даже без комментариев, структура неплохо вытаскивается. Не быстро, но делается. А вот если код пропустить через хороший обфускатор, тогда да, задача почти не решается В RTL коде даже с обфускатором решается, сложнее но решается. Если не стоит задача именно RTL передавать то лучше смотреть на вариант с нетлистом. Это значительно сложно чем обфусцированный RTL Удачи! Rob. Quote Ответить с цитированием Share this post Link to post Share on other sites
des00 0 Posted November 18, 2020 · Report post 1 minute ago, RobFPGA said: В RTL коде даже с обфускатором решается, сложнее но решается. ну расставите пробелы, отступы и прочее, но что делать с именами на 64 символа нулей и единиц? даже автозамена на а,б,с,д не особо поможет. мелкий модуль можно раскидать, да, а что-то крупное, сомневаюсь. а у нетлиста слабое место платформозависимость. самое просто, взять сложную корку в Альтере и посмотреть обфусцированную идеалку для моделирования. По ней восстановить функциональность) Я пробовал. то еще занятие) Quote Ответить с цитированием Share this post Link to post Share on other sites
RobFPGA 0 Posted November 18, 2020 · Report post Приветствую! 16 minutes ago, des00 said: ну расставите пробелы, отступы и прочее, но что делать с именами на 64 символа нулей и единиц? даже автозамена на а,б,с,д не особо поможет. мелкий модуль можно раскидать, да, а что-то крупное, сомневаюсь. а у нетлиста слабое место платформозависимость. У меня был опыт ковыряния обфуцированого VHDL RTL, ~20 MB исходников. Причем часть исходников генерированные автоматом из BD и GUI для дизайна FSM. Все модули и пакеты в одном файле без всякого форматирования и именами как раз в виде hash. Сначала страшно было - а потом написал несколько хелперов для SublimeText и потихоньку (с помощью ModelSim и какой то матери ) расковырял все, разобрался что по чем, нашел и поправил то что мне нужно было. Естественно были как некая исходная инфа так и хорошая мотивация для всего этого безобразия Удачи! Rob. Quote Ответить с цитированием Share this post Link to post Share on other sites
des00 0 Posted November 19, 2020 · Report post 14 hours ago, RobFPGA said: Приветствую! У меня был опыт ковыряния обфуцированого VHDL RTL, ~20 MB исходников. Причем часть исходников генерированные автоматом из BD и GUI для дизайна FSM. Все модули и пакеты в одном файле без всякого форматирования и именами как раз в виде hash. Сначала страшно было - а потом написал несколько хелперов для SublimeText и потихоньку (с помощью ModelSim и какой то матери ) расковырял все, разобрался что по чем, нашел и поправил то что мне нужно было. Естественно были как некая исходная инфа так и хорошая мотивация для всего этого безобразия ну значит ваше реверсинжениринговое кунфу круче моего Quote Ответить с цитированием Share this post Link to post Share on other sites
Aleх 0 Posted November 19, 2020 · Report post По нетлисту очень сложно восстанавливать комбинационную логику, особенно если это неведомая стейтмашина или функция большой разрядности, или какойнибудь умножитель, сделанный не по классической схеме. Для восстановления надо все время сверяться с LEC тулом, а потом еще и пытаться понять, для чего этот код. А хуже нетлиста может быть только нетлист с флатованой иерархией Quote Ответить с цитированием Share this post Link to post Share on other sites
Nick_K 0 Posted November 19, 2020 · Report post 3 hours ago, Aleх said: Для восстановления надо все время сверяться с LEC тулом, а потом еще и пытаться понять, для чего этот код. Эм... А LEC тут каким боком? Я понимаю что инструмент сильный, но с чем сравнивать, если есть только нетлист? 3 hours ago, Aleх said: А хуже нетлиста может быть только нетлист с флатованой иерархией Это да, это я видел. Испугался и удалил))) Quote Ответить с цитированием Share this post Link to post Share on other sites
Aleх 0 Posted November 19, 2020 · Report post 36 minutes ago, Nick_K said: Эм... А LEC тут каким боком? Я понимаю что инструмент сильный, но с чем сравнивать, если есть только нетлист? Нетлист сравнивается с восстановленным RTL. Доверяй, но проверяй, как говорится. Это кстати совершенно рядовая задача когда нужно на spare-cells сделать маск-патч для эсика (если обнаружена ошибка, а часть пластин лежит без BEOL на хранении): находится нужный кусок нетлиста, переводится в читаемый вид, изготавливается rtl-патч, синтезируется на spare-cells, патчится исходный нетлист, потом отдается в топологию, где переразводят металлы. Quote Ответить с цитированием Share this post Link to post Share on other sites
Nick_K 0 Posted November 19, 2020 · Report post 12 minutes ago, Aleх said: Нетлист сравнивается с восстановленным RTL. Доверяй, но проверяй, как говорится. А - это понятно. Я не понял в контексте данного треда, с чем сравнивать, если только один шифрованный файл. А ещё мне кто-то говорил, что через LEC можно проверить констрейны. Но видно или я был невнимателен, либо слишком пьян) Quote Ответить с цитированием Share this post Link to post Share on other sites
StewartLittle 0 Posted November 19, 2020 · Report post 21 час назад, RobFPGA сказал: Если не стоит задача именно RTL передавать то лучше смотреть на вариант с нетлистом. Это значительно сложно чем обфусцированный RTL Вариант с нетлистом подразумевает привязку к конкретному семейству ПЛИС (для которого нетлист синтезировался)? Quote Ответить с цитированием Share this post Link to post Share on other sites
des00 0 Posted November 19, 2020 · Report post 4 hours ago, Aleх said: По нетлисту очень сложно восстанавливать комбинационную логику, особенно если это неведомая стейтмашина или функция большой разрядности, или какойнибудь умножитель, сделанный не по классической схеме. Для восстановления надо все время сверяться с LEC тулом, а потом еще и пытаться понять, для чего этот код. А хуже нетлиста может быть только нетлист с флатованой иерархией кстати, а разве обфускатор не должен при обфускации делать плоскую модель модуля верхнего уровня? Ведь, как отметил @RobFPGA, наличие структуры, знаний о функциональности и симулятора, значительно упрощяет реверс-инженеринг. В моей системе ценностей обфускатор не только заменяет все имена, удаляет пробелы, но и раскрывает функции/таски, но и вытаскивает все в файл верхнего уровня. Этакий псевдосинтез) Quote Ответить с цитированием Share this post Link to post Share on other sites