Как стать автором
Обновить

Защита софта в 2025

Время на прочтение 4 мин
Количество просмотров 7.2K
Оу! Сегодня наконец-то я получил свою новую Юнити Студию!

Дрожащей рукой я распаковываю содержимое посылки. О да! маленький кристалл, всего-то с в пол ладони величиной, а на нем все: процессор, память(достаточная для самых максимальных возможностей), видеопроцессор, аудио процессор, сама программа.

Закон Мура суров и беспощаден: удвоение числа транзисторов на пластине каждые два года. Именно благодаря беспрестанному развитию процессоров Интел(а следом, NVidia, AMD, Samsung и остальные) умудрилась запихать в один процессор содержимое системного блока, после чего процессор и перестали называть процессором, а стали кристаллом, и снизить его стоимость настолько, что стала возможной сама идея кристалла-программы.

Я вставляю его в панель моего компьютера: кристалл входит в щель и сам защелкивается, а на рабочем столе появляется иконка. Все! Установка завершена! Нет теперь долгих часов ожидания чего-то там… Деинсталляция тоже простая — выдерни нужный кристалл в одном из 256 гнезд. Но это жесткая деинсталляция, мягкая — через соответствующее меню в ОС.

Правда, это уже четвертый кристалл данной, 7-ой версии Студии… Ну что поделаешь, не распространяются по Интернету апдейты, не могут. Просто из-за такой ситуации: каждый процессор со своей кодовой базой. То есть, команда MOV EAX, EDX имеет опкод не 8BC2, а… никто не знает какой именно. Набор опкодов определяется случайным образом на заводе-производителе при прожиге пластины. А потом под нее идет компиляция программы.
Идеальная защита! Никто не может написать вирус, если ассемблерные команды — другие! Помнится, лет десять назад были языки со своей виртуальной машиной… А теперь, с# и java — компилируемые языки.

Ну в самом деле, какая разница на какой ОС сидит пользователь, если среда передает в программу только размеры окна, и ввод/вывод подключенных устройств, а программа выдает уже готовую картинку? При этом, все API ввода/вывода любых устройств для любых ОС строго стандартизировано и шаг влево, шаг вправо — считается побег, а прыжок на месте — провокация.
Да, есть минусы — программы приходится рассылать по почте, а для разработки заказывать «процессор разработчика».

Поставляется он отдельно от любой среды разработки. Кстати, кодовую таблицу ассемблерных опкодов для конкретного процессора разработчика запрашивает сама среда разработки, и получить ее для изучения не представляется возможным — шифрование, протоколы безопасности, все такое… если доказана возможность получения кодовой таблицы от данной среды разработки — гигантские штрафы и заморозка партий выпуска. Но зато, можно не опасаться того, что исходные коды «утекут в сеть» — на кой это нужно, если процессор разработчика стоит как автомобиль?

Я один из немногих, кто может себе позволить процессор разработчика… И то, потому что занимаюсь последней отрадой программистов — веб-разработкой.

Тоже, кстати непростое дело. Любая динамика — выполняется на стороне сервера и является компилируемой. А пользователю нельзя передавать никакой активный код. Зато пользователь может передавать все клики мышой и ввод с клавиатуры… Да-да серверам пришлось стать мощнее… То есть, отличить сайт от тонкого клиента теперь просто невозможно. Помнится, какой хай подняли разработчики, когда наш президент издал такой указ!

А куда деваться-то? В Штатах подобный указ вышел годом раньше… Но у них хотя бы сеть и сервера справляются с подобной нагрузкой… а у нас все как всегда…

Хорошо еще, до языков программирования вся эта чушь стандартизации не добралась! Были, были попытки назвать язык 1C государственным и запретить остальные… Слава богу, сама 1С воспротивилась — ей никогда не догнать все существующие фреймворки всех существующих языков. Ну и общество высказалось…

Еще одна отрада — опенсорц. Ему, правда, пришлось стать платным. Не для отдельных библиотек и фреймворков, разумеется, а для отдельных программ и ОС. Почему пришлось? Потому что компилировать сорцы под свой процессор операционной системы никто не может — кодовой таблицы процессора нет. А выпуск кристалла стоит денежек… вот и крутятся как могут. Тот же ОпенОфис периодически устраивает сбор денег на свой выпуск.

Upd: предполагается, что разрядность процессора как минимум, не уменьшается, а как максимум увеличивается. Т.е. количество вариантов на один опкод — 2^64 или больше.
С увеличением числа транзисторов на кристалле не обязательно растет производительность: так, последняя Мафия «весит» 42 гига в запакованном варианте — и все это должно лежать на кристалле. Т.е. встроенный минимум 1Тб(у нас же будущее, да?) флэш-накопитель + хз сколько оперативка.

Upd2: Я забыл упомянуть, что каждый кристалл — это полностью самодостаточная система, у которой нет функции доступа к файлам на внутреннем накопителе. Т.е. вы не сможете скопировать на флэшку ни калькулятор, ни текстурки, ни зашитый в ОС фон рабочего стола. Так же, вы не можете скопировать на диск кристалла вашу программу и ее оттуда запустить. Исключение составляет только процессор разработчика — он может сохранять скомпилированные файлы на внешний(по отношению к кристаллу) диск и исполнять их оттуда.

По результатам обсуждения выяснилось, что 64бита на опкод взламывается за приемлемое время. Так что, я, своей волей автора, меняю разрядность кристалла на 128бит и говорю, что в случае указания недействующего опкода срабатывает исключение процессора кристалла типа «идет атака». Как отреагирует программа на кристалле — не известно, но будем предполагать худший вариант: в случае сетевой атаки — блокирование IP-адреса, в случае локальной — остановка программы и просьба отнести/отправить кристалл в техподдержку.
Теги:
Хабы:
-4
Комментарии 90
Комментарии Комментарии 90

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн