Быстрое начало работы с автономным графическим интерфейсом пользователя
В данном разделе описывается порядок работы с автономным графическим интерфейсом пользователя Dotfuscator. Полное руководство по интерфейсу пользователя см. в Справочнике по графическому интерфейсу пользователя.
Шаг 1. Запуск графического интерфейса пользователя приложения Dotfuscator
- Щелкните «Пуск» | «Программы» | «PreEmptive Solutions» | «Dotfuscator Professional Edition 4.0» | «Dotfuscator».
- Появится диалоговое окно «О программе Dotfuscator Professional». Щелкните мышью или нажмите любую клавишу для продолжения, либо подождите 5 секунд.
Шаг 2. Создание проекта по умолчанию
- Выберите «Создать новый проект» и нажмите кнопку «ОК». На вкладке «Ввод» появится основное окно проекта.
- Выберите сборку, для которой нужно выполнить запутывание.
- Нажмите кнопку «Обзор».
- Перейдите в папку
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\bin\Debug
- и выделите файл GettingStarted.exe.
- Нажмите кнопку «Открыть». Путь к исполняемому файлу отобразится в списке «Исходные файлы».
- Чтобы сохранить проект, выберите «Файл» | «Сохранить проект».
- В диалоговом окне «Сохранение проекта» перейдите в папку
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\
- В поле имени файла введите «Dotfuscator.xml».
Шаг 3. Построение проекта
- Перейдите на вкладку «Построить». Каталог по умолчанию для сохранения результатов построения: ${configdir}\Dotfuscated. Примечание: в переменной ${configdir} хранится путь к файлу конфигурации приложения Dotfuscator.
- Теперь проект готов для выполнения запутывания. Нажмите кнопку «Построить». Подождите несколько секунд, пока Dotfuscator выполнит построение запутанной версии приложения HelloWorld. Полученная сборка сохраняется в каталоге
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\Dotfuscated
После этого можно перейти на вкладку «Вывод» и просмотреть символы, для которых было выполнено запутывание, или просмотреть файл сопоставления переименований (map.xml), который был создан в выходном каталоге, или даже запустить полученное в результате запутывания приложение. С первых шагов работы при незначительных настройках было выполнено успешное запутывание выбранного приложения.
Далее, настроив некоторые параметры, можно воспользоваться расширенными возможностями приложения Dotfuscator.
Шаг 4. Настройка проекта
- Перейдите на вкладку «Параметры».
- Установите для свойства «Ход построения» значение «Подробно». В результате этого Dotfuscator будет выводить в нижней части вкладки построения дополнительную информацию о ходе выполнения.
- Задайте свойству «Создавать отладочные символы» значение «Да». Это позволит приложению Dotfuscator создавать файлы идентификаторов в формате PDB для каждой выходной сборки. Эти файлы могут использоваться при отладке для получения ценной информации. Как правило, в них содержатся такие данные, как номера строк, имена исходных файлов и имена локальных переменных. Файлы PDB помещаются в выходном каталоге вместе с выходными сборками.
- Установите для свойств «Отключить переименование», «Отключить поток управления», «Отключить шифрование строк» и «Отключить удаление» значение «Нет». Указанные параметры позволяют выполнить тонкую настройку действий приложения Dotfuscator, которые будут выполняться при построении сборок. Настройка и использование данных параметров рассматриваются в следующих шагах.
- Перейдите на вкладку «Переименование». Замена имен методов и полей на бессмысленные названия приводит к запутыванию кода. Этот параметр включен по умолчанию, при этом отмеченные элементы будут исключены из процесса переименования. Для данного приложения ничего исключать не требуется.
- Перейдите на подвкладку «Параметры переименования». Установите флажок «Использовать расширенную индукцию перегрузки». Данная функция допускает до 15 процентов большей избыточности в именах методов и полей. Поскольку перегрузка возвращаемого типа метода или типа поля обычно не разрешается в исходных языках, включая C# и VB, это еще больше препятствует декомпиляции.
- Примите к сведению, что текстовое поле «Выходной файл сопоставления» имеет значение по умолчанию ${configdir}\Dotfuscated\Map.xml.
- Установите флажок «Выводить как HTML», чтобы получить отчет с ценной информацией о переименованиях и статистикой по приложению. Указанный отчет будет сохранен в том же самом каталоге, где находится файл сопоставлений. Путь для указанного файла по умолчанию имеет значение ${configdir}\Dotfuscated\Map.html.
- Перейдите на вкладку «Поток управления». Запутывание потока управления состоит из конструкций ветвления, условий и итераций (таких как if, for и while), в результате которых строится прямая (выполняемая) логика, при декомпиляции которой получаются неопределенные семантические результаты. Другими словами, исполнение кода происходит как и раньше, однако в результате декомпиляции получить оригинальный код невозможно.
- Перейдите на вкладку «Шифрование строк». Шифрование строк позволяет выполнить запутывание строк в приложении. Например, если выполняется попытка обойти процедуру регистрации и проверки подлинности, то выполняется поиск строки, которая отображается в приложении при запросе серийного номера. После того как строка найдена, выполняется анализ инструкций, которые находятся рядом, для изменения логики программы. Шифрование строк затрудняет данную процедуру, поскольку нужная строка не будет найдена.
- Для шифрования строк во всех методах необходимо установить флажок в корне дерева сборки, отображаемой в левой области.
- Перейдите на вкладку «Удаление». Если данный параметр задан, Dotfuscator будет выявлять и удалять неиспользуемые типы, методы и поля. Потенциально это может значительно уменьшить размер окончательного приложения.
- Для процедуры удаления Dotfuscator должен знать точки входа в приложение. В данном случае точкой входа является стандартный метод «Main», и Dotfuscator способен определить это без дополнительной конфигурации.
Шаг 5. Перестройка проекта
- Нажмите кнопку «Построить», поскольку проект готов для повторной обработки. Как и раньше, полученная сборка сохраняется в каталоге
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\dotfuscated
Шаг 6. Анализ выходных данных
- Перейдите на вкладку «Вывод». Теперь можно перейти в дерево, в котором отображается результат запутывания кода.
- Разверните корень дерева и все поддеревья. Обратите внимание на наличие синих ромбообразных значков. Это говорит о том, что соответствующие методы и поля были переименованы. Родительские узлы каждого из таких значков отображаются со своими оригинальными именами. Dotfuscator выполнил переименование всех методов и полей, что делает практически невозможным определение назначения каждого метода. Это может в значительной степени затруднить процесс декомпиляции кода.
- Обратите внимание на выделение методов SaySomething и set_Name, а также свойства Name. Dotfuscator определил, что данные элементы не используются в приложении. Как результат, они могут быть удалены с помощью функции очистки, что приведет к более компактному приложению.
Последующие шаги
К настоящему времени было выполнено запутывание кода с использованием графического интерфейса пользователя. Теперь можно рассмотреть, как использовать для этой же цели интерфейс командной строки. Или можно выполнить анализ выходной запутанной сборки и определить эффективность выполнения запутывания.
© 2002-2007 PreEmptive Solutions. Все права защищены.