Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Эквивалентные преобразования
Хотелось бы отметить еще один несложный универсальный защитный прием, который может быть довольно эффективным для защиты JavaScript-программ. Во всяком случае, его почти всегда имеет смысл использовать в дополнение к описанным выше механизмам защиты.
Речь идет об эквивалентных преобразованиях JavaScript-текста, снижающих его читабельность. Конечно, простое удаление лишних пробелов и «склеивание» строк – не слишком ценное действие: такой текст очень легко автоматически сформатировать обратно в читабельный вид. Но вот замена всех идентификаторов – переменных и функций – на бессмысленные эквиваленты типа «v1», «v2», ... может быть полезной.
Это, конечно, не настоящая защита – любая программа, скомпилированная классическими компиляторами C++ или Delphi, уже «защищена» таким образом. Но по крайней мере, это делает «взлом» JavaScript-кода почти такой же непростой задачей, что и анализ машинного кода обычных программ.
Вероятно, в Интернете уже есть утилиты, выполняющие подобное преобразование. Во всяком случае, такую программу нетрудно написать, располагая синтаксическим анализатором JavaScript.
Приведенные здесь идеи по защите JavaScript-программ от взлома, т.е. несанкционированного изучения исходных текстов, вполне применимы и к другим языкам. Язык JavaScript интересен своей предельной незащищенностью от такого рода атак. Он позволяет использовать лишь сравнительно «серьезные» схемы защиты, построенные на достаточно фундаментальных идеях. Разного рода частные «трюки», основанные на особых свойствах процессора или операционной системы, здесь не проходят.
Многие из описанных выше идей были почерпнуты автором из книги:
Защита информации в персональных ЭВМ. Спесивцев, Вегнер, Крутяков, Серегин, Сидоров. М., Радио и связь, ВЕСТА, 1993. (Библиотека системного программиста).
Эту книгу написали авторы Cerberus – одной из лучших систем защиты машинного кода, популярных во времена DOS-программ. В частности, идеи саморасшифровки, тайминга и «безумного» кода – оттуда.
Автор также признателен участникам форума