четверг, 19 ноября 2009 г.

Как скрыть/защитить исходный код в Navision

Причин защиты исходного кода может быть много, например:

- защита “ноу-хау”,
- защита текста от несанкционированного или непрофессионального вмешательства,
- формирование демо-версии add-on решения для передачи “наружу”

Кардинальное решение этой задачи обеспечивает утилита Navutilus Object Squeeze. Эта утилита физически удаляет исходные тексты из объекта Navision и делает эти объекты меньше размером. Способ борьбы с этой технологией один – декомпилятор. Но за эту задачу, насколько мне известно, пока еще никто не брался.

Проиллюстрируем технологию использования этой утилиты. Обработаем с ее помощью кодюнит 12 Gen. Jnl.-Post Line. Кстати, утилита обрабатывает только те объекты, на которые у ее пользователя есть права на чтение и модификацию.

Откроем карточку процедуры “сквизирования”:



1. Задаем тип объекта (Codeunit) и его номер (12)

2. Ставим галочку в поле Replace Source (иначе исходники сохранятся в неизменном варианте)

3. В поле Source Replacer Text импортируем текстовый файл, в котором задан текст, которым будут заменены тексты в программных триггерах и функциях. В нашем примере импортируем файл



4. Ставим галочку в поле Replace Documentation (иначе триггер Documentation останется неизменным).

5. В поле Documentation Replacer Text импортируем текстовый файл, в котором задан текст, которым будет заменен текст триггере Documentation. В нашем примере импортируем файл



6. В поле Erase Local Variable Names ставим галочку (иначе имена локальных переменных останутся неизменными).

7. Запускаем функцию Squeeze Objects! Через несколько секунд (в локальном варианте работы) получаем сообщение о завершении задания (мы, конечно же, сохранили изменяемый объект перед этой процедурой :)).

Теперь мы можем открыть в дизайнере этот объект. Получим такую картинку



Обратите внимание – теперь вместо имен локальных переменных изображаются “пустышки”.

Таким образом, в результате получаем защищенный объект, полностью работоспособный. Кстати, в этом конкретном случае его размер уменьшился с 460Kb до 226Kb.

Описанная технология массово протестирована. В частности, несколькими сотнями пользователей бесплатных утилит Navutilus, в разных странах и на разных версиях системы (утилита работает в версиях 4.хх, 5.хх, 2009).

Комментариев нет:

Отправить комментарий