Когда программист создает программу для продажи или даже свободного скачивания, он явно не мечтает о том, чтобы алгоритмы работы программы стали доступны широкому кругу людей, а таких исследователей сейчас немало. Причин много: может, он вложил в этот алгоритм годы труда, а другой доработает пару строк и заработает на этом миллионы. Или просто поднимут на смех, узрев ошибки и неточности работы программы. Для коммерческих программ кража и взлом алгоритма означает опасение остаться без дохода, на который рассчитывал разработчик. В любом случае, программы всегда старались зашифровать или запутать, чтобы хакеры, столкнувшись с трудностями анализа, не стали ею дальше заниматься. Такие программы, которые автоматически запутывают исходный, готовый или промежуточный код в непонятную «кашу», называются обфускаторами.

Вносимые изменения в код не являются функциональными или опасными, а вноситься могут автоматически. Лишний код не влияет ни на что в программе, но догадаться об этом сложно. Поэтому, обфускаторы сегодня встраивают в компиляторы или реализуют отдельными модулями, программами или библиотеками. Наиболее часто изменению подвергаются исходный код (чтобы не усложнять компилятор), особенно в плане функций контроля проверки лицензированной копии продукта. Иногда обфускация применяется и вручную, и тогда на выходе получается нечто вроде «индусского кода», который даже сам автор не прочитает. В старое время, когда применялись традиционные компилирующие языки, такое шифрование требовалось нечасто, так как анализ машинного кода не мог с точностью воссоздать даже ассемблерный листинг программы, но сегодня все изменилось. В моду вошли компиляторы байт-кодов для виртуальных машин Java/.NET, причем для программ на этих платформах было легко вернуть скомпилированную программу обратно в исходный код. Аналог такой декомпиляции был и раньше, когда удавалось получать исходные данные для программ не Бейсике, FoxPro и аналогичных языках СУБД. Сейчас декомпиляторы байт-коды выложены в Интернете, и скачивать их может любой, кто умеет пользоваться. Понятно, что существуют и более продвинутые инструменты шпионажа за кодом и его анализом, но такие инструменты сами нуждаются в защите от воровства.

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

captcha

Что такое облачное хранилище и как им пользоваться? Что такое облачное хранилище и как им пользоваться?
Как выбрать пластины для теплообменника? Пластины для теплообменника
Изучение языка ECMAScript: основа современной веб-разработки История языка ECMAScript
Как добавить комментарий в HTML? HTML примеры
Apple позволит разработчикам распространять приложения напрямую с их сайтов Apple позволит разработчикам распространять приложения напрямую с их сайтов
jQuery 4.0 сокращает поддержку браузеров, удаляет API Новое в jQuery 4.0
Как продвинуть Telegram-канал: с нуля до результата Как продвинуть канал в Telegram с нуля?
Получить IT профессию с нуля: академия Eduson Получить IT профессию с нуля
Перспективы эволюции SEO: встречайте будущее продвижения в поисковых системах Будущее SEO-продвижения
Создание сайтов в Алматы: агентство site-promote.kz Разработка сайта компании
Антипкин Михаил Сергеевич о метавселенной, открывающей безграничные возможности для инноваций и экспериментов Антипкин Михаил Сергеевич о метавселенной
Сёрфинг с браузером FraudFox: исчерпывающее руководство Сёрфинг с браузером FraudFox
Где найти лицензионные ключи активации к ПО? Где найти лицензионные ключи активации к ПО?
Курсы веб дизайна: обучение онлайн Курсы веб дизайна: обучение онлайн
Как продлить срок службы бытовой техники? Как продлить срок службы бытовой техники?
Основы VPS/VDS: что нужно знать перед арендой? Основы VPS/VDS: что нужно знать перед арендой?
Откройте для себя азарт Mostbet KZ - ведущего онлайн-казино для геймеров Откройте для себя азарт Mostbet KZ - ведущего онлайн-казино для геймеров
Топ-10 игр для Android стоимостью менее $5 Топ-10 игр для Android стоимостью менее $5
Проверка авто в базе ГИБДД перед покупкой Проверка авто в базе ГИБДД перед покупкой
Бизнес-психология в онлайн-институте Smart Бизнес-психология в онлайн-институте Smart