Алгоритм вычисления большого (тысячи бит) числа нужен

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

если верить историческим книгам разработчика предавали огню, это если им верить

Необратимое термошифрование. Метода, чо. Раньше делали качественно - баги фиксить после релиза не нужно было.

интересно, как это сделать? Быстро и относительно точно

Не стоит задачи защитить код от копирования. Стоит задача создавать прошивки, которые делают одно и тоже, но выглядят (на уровне машинного кода) по разному.

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

После компиляции получаем бинарник, в котором:

[случайный_алгоритм_дешифрования_тела][тело]

С таким ТЗ часть прошивки (после дешифровщика) шифруется простым алгоритмом по ключу хранящемуся в определенном месте (хоть в отдельной части памяти, хоть стеганографически зашитом в той же закодированной прошивке). Алгоритм единый, множество ключей явно больше ваших копий.
Если никому не рассказывать тайну алгоритма, ключом может служить хоть серийник МК.

Непонятно требование к алгоритму “работать долго”. Любую функцию можно снабдить “пустыми” циклами или имитирующими работу - если автор этого не понимает, то под сомнением его скилл как программиста.

Это (обьявление большим числом) в практичском плане вам ничего не дает… да и вообще, глупость, по моему :slight_smile:

2 лайка

Мне самому интересно. Я читал про общий принцип контроля устройствами своего периметра. Был способ еще и по давлению газа - давление в корпусе ушло, срабатывает независимая схема запускающая “сжигание” ключа. Типа микросхемки, которая умеет только выдавать уникальный ключ, а при пропадании внешнего давления навсегда выходить из строя. Конечно, вскрывается в барокамере, тоже от случайных прохожих.

Это как раз то, чего не нужно.
Алгоритм должен быть генерёный, все время - разный.

Если алгоритм один и тот же, то глянув в начальные байты прошивки можно будет сказать, “О, это же алгоритм от Мишутки, он нам известен, сейчас мы сами все расшифруем, без сопливых”

И напишут програмку для расшифровки всех прошивок.

Но если все прошивки изначально разные, то задача осложняется. Недостаточно будет вытащить ключ или , там, hardware id. Нужно будет еще сидеть и разбираться в алгоритме. И найденное решение будет уже не применимо к другой прошивке (взломав одно устройство нельзя так же взломать остальные)

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

Это для устойчивости к автоматизированной “распаковке”.

Посмотрите в интернете о методах защиты (шифрования) исполняемых файлов и о методах их расшифровки пошаговым исполнением. Поезно так же почитать о том, как устроена “распаковка” .exe файлов обфусцированных\щифрованных антивирусными програмами.

Вот вам и вопрос, что сложного вам как программисту написать не имеющее отношение к выдаче результата “тяжелое” вычисление? Что и это вы выносите как непосильное вам и требующее помощи. Расшифровать тормозящий кусок, погонять его, потом приступить к дальнейшей расшифровке.

Ну скипнут же его в отладчике просто, если это dummy code, не имеющий отношения к вычислению результата

значит сделайте так, чтоб не скипнули. Используйте его результат в основном коде…

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

Прям “назвал все буквы, не смог угадать слово…”

1 лайк

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

Еще раз - от чего вы защищаетесь?

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

а ты как будто тестер на ардуино никогда не видел )))

потому и спрашиваю, что видел.
Точность измерения емкости в них плюс-минус лапоть

Мне просто нужен тру-полиморфный код, вот и все.

От чего защищаются полиморфным кодом? Вот и мне для этого же.

Я это сформулировал как задачу в этом топике. Но специально для вас могу переформулировать: нужен генератор тру-полиморфного кода. ну, или метаморфного, как его одно время называли.

там-то как раз ничего сложного нет.

Ладно, понятно, что ничего не понятно.
Какую-то теорию читать надо, современную.
Генерировать алгоритмы - это непросто :smiley:

Думаю, надо в сторону генетического алгоритма двигаться.
Много писанины :frowning:

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

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