89

Ответ Ghost687 в «Конец реверс-инжинирингу: релиз Markov Shield AI — софт, который "намертво" привязывает код к железу»

Серия Простыми словами
Это не допилили малость "защитнички".

Это не допилили малость "защитнички".

Просто разрабы неправильно поняли суть проблемы и решили на отвяжись поставленную задачу.

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

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

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

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

В связи со всем вышеперечисленным выбор наш пал на аппаратные ключи, которые в клиентский комп вставляются в USB-порт и без которых наша защищаемая CAD-система превращается в тыкву.

Вот такие вот ключики мы использовали

Вот такие вот ключики мы использовали

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

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

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

Это очень не просто - выбрать такие чистые (в функциональном смысле). компактные (в донгле не так много места), не критичные к скорости (ява-машина в ключике не впечатляла скоростью, а всё ещё и через USB2.0 работало... если не 1.1, не помню уже), нетривиальные функции, которые нельзя было бы повторить так просто в эмуляторе ключа.

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

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

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

И да, надо понимать, что любая просто быстро и наивно реализованная защита легко и дёшево обходится. Главное, чтобы это было экономически выгодно, а за взломом дело не встанет.

Вот и тут, не так просто найти даже в большом инженерном приложении кусочка, который можно настолько чисто изолировать, чтобы он мог работать на отдельном процессоре. А ещё надо, чтобы разработка и исправление ошибок в рамках поддержки защищенного ПО не превратились в кошмар, чтобы неаккуратность или ошибка разработчиков не поломали законно купленные лицензии.

И вот тут я расскажу ещё про один лайфхак. Защита должна быть многослойная и вероятностная.

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

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

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

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

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

Эти рандомизации критериев и отложенные реакции позволяют усложнить и замедлить цикл подбора параметров защищенных функций при взломе.

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

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

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

Если непонятно что-то объяснил - спрашивайте. Мне казалось я умею объяснять сложные вещи простыми словами, особенно если сам понимаю эти сложные вещи. Но и на старуху, как говорится...

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

Показать полностью 1
147

Ответ на пост «Конец реверс-инжинирингу: релиз Markov Shield AI — софт, который "намертво" привязывает код к железу»

Средний по тяжести случай ИИ-психоза.

Рекомендации по излечению: не трогать нейронки вообще больше никогда и не подходить к компьютеру минимум месяц. Заниматься это время физическим трудом согласно своему состоянию здоровья(читай, курьером работать на электросамокате).

Итак, что у нас в бинарниках(файлах v144_engine.so и v144_cpu_engine.so, исходников которых нету в репо)? Запихиваем их сюда https://dogbolt.org/ и смотрим. Второй чет не запихнулся, но там аналогичная история.

Почему же все это дерьмо не работает?

Смотрим сюда.

Стараемся не хихикать от "аппаратных регистров". Помним что у человека ИИ-психоз.
И что мы видим?
Есть dll(в репо идет .so, но это тоже самое, только для линукса) . Из нее вызывается функция, которая возвращает результат. Если этот результат хорош, то все хорошо(работаем дальше), если плох, то гнусные хацкеры нас хакнули, удаляем у пользователя диск C:/ в отместку заканчиваем тяжело работать.

В итоге чтобы обойти такую чудовищно сложную защиту(вы видели сколько там кепочек^ и мохнатых точечек* ???) нам нужно либо тут написать

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

Все.

Непробиваемая защита пробита.

Показать полностью 3

Конец реверс-инжинирингу: релиз Markov Shield AI — софт, который «намертво» привязывает код к железу

Всем привет. Сегодня я выкидываю в паблик технологию, которая закрывает вопрос взлома и реверса софта раз и навсегда. Это не просто очередная «обфускация», которую школьник расковыряет за вечер. Это математический детерминизм на уровне ядра.

Что это такое?
.
Современная защита софта (DRM, анти-читы, лицензионные ключи) — это всегда игра в кошки-мышки. Взломщик рано или поздно находит точку входа. Мы решили эту проблему на уровне фундаментальной математики.

В основе системы лежит V144 Protector Core. Она использует теорию резонансных инвариантов Ефима Маркова. Вместо того чтобы просто проверять лицензию, программа в реальном времени сверяет состояние системы с математической константой .

Почему это нельзя взломать?

Markov Shield AI — это первая в мире система детерминированной защиты на аппаратном уровне, базирующаяся на инвариантах нерефлексивных банаховых пространств (Матрица V144). Система обеспечивает гарантированную защиту от состязательных атак без использования вероятностных методов.

Если по-простому: я превратил код в «математический монолит». Программа срастается с конкретным железом (Hardware-ID) так, что при попытке запустить её на другом компе или залезть внутрь отладчиком, она не просто выдает ошибку, а теряет свою математическую целостность.

Ниже картинки"програмиста" думающего что он взломал код с помощью ИИ и Ghidra,на самом деле ИИ не смог и с галюцинировал, а Ghidra захлебнулась в самом начале только надкусив код.😂😂😂😂😂😆😆

Почему это нельзя взломать?

NP-трудность: Я доказал, что восстановление логики из моего бинарника — это задача, на которую у современных суперкомпьютеров уйдут миллиарды лет. Это физика и математика, против них не попрешь.

Инвариант ζ = 1.024: Система в реальном времени мониторит «резонанс» данных. Малейшая попытка подсунуть фейковые веса или изменить инструкцию — и ядро блокируется.

GPU-Native: Защита крутится прямо в CUDA-ядрах вашей видеокарты. Хакеры привыкли работать с CPU, а тут их ждет сюрприз на уровне тензорных вычислений.

Для кого это?

Если ты разработчик ИИ и не хочешь, чтобы твою нейронку за $100к украли и перепродали.

Если тебе нужна реальная защита интеллектуальной собственности в софте

Если ты хочешь, чтобы твой софт работал только там, где ты разрешил.

Финтех и Криптография: защита кошельков и транзакций от подмены кода в памяти.

Gamedev и Анти-чит: создание игр, которые невозможно взломать или модифицировать сторонним софтом.

Промышленный софт (IoT): защита прошивок критически важного оборудования от диверсий.

Защита IP: превращение уникальных коммерческих алгоритмов в «черный ящик» для конкурентов.

Где потрогать?

Я выложил бинарные ядра (GPU и CPU) на GitHub. Внутри — движки, которые успешно прошли аудит 64 антивирусов.
Ссылка на GitHub:
https://github.com/fomamarkov-creator/Markov-Shield-AI-Publi...
Инструкция прилагается на GitHub.

Попробуйте взломать (тестирование):

Основная цель публикации — «краш-тест» от сообщества.
Вы можете:Скачать демо-бинарник, защищенный этой системой.
Попробовать запустить его под отладчиком (debugger) или изменить в нем хотя бы один байт.
Проверить, действительно ли программа «умирает» и теряет математическую целостность при таких манипуляциях.

В чем суть проверки?

Вам нужно убедиться, работает ли заявленный «математический замок». По утверждению автора, защита построена на NP-трудности и резонансных инвариантах.
Обычные инструменты реверса (вроде IDA Pro или Ghidra) должны столкнуться с тем, что код выглядит как «неприступный монолит», который невозможно декомпилировать в читаемую логику.

Лицензия — AGPLv3 для личного пользования.
Для коммерции и военки — пишите в личку или почту :ef.87@mail.ru fomamarkov@gmail.com

Ломайте, тестируйте, пишите в комментах, что думаете. Только не удивляйтесь, если ваш дебаггер просто «сломает зубы».

Показать полностью 3
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества