VMProtect/help/ru/project_functions.htm

135 lines
9.1 KiB
HTML
Raw Normal View History

2023-05-14 16:21:09 +03:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="Stylesheet" type="text/css" href="default.css" />
<meta http-equiv="Content-Type" content=
"text/html; charset=utf-8" />
<title>Секция "Функции для защиты"</title>
<style type="text/css">
/*<![CDATA[*/
div.c2 {text-align: center}
/*]]>*/
</style>
</head>
<body>
<h1>Секция "Функции для защиты"</h1>
<p>Секция предназначена для выбора защищаемых функций.</p>
<p><img src="images/project_functions.png" /></p>
<h3 id="AddFunction">Добавление функции</h3>
<p>Для того чтобы добавить новый объект в проект, нажмите кнопку "Добавить функцию" на панели инструментов, либо выберите этот пункт в контекстном меню:</p>
<p><img src="images/project_functions_menu.png" /></p>
<p>Появится диалог добавления функции:</p>
<p><img src="images/project_add_function.png" /></p>
<p>Задайте адрес функции или выберите нужную функцию из списка на вкладке "Функции", начав набирать ее имя в строке быстрого поиска. Вы можете добавить сразу несколько функций, используя множественное выделение. Все выделенные функции будут добавлены с выбраными опциями защиты.</p>
<p><strong>Опции</strong></p>
<ul>
<li><a name="CompilationTypes" id=
"CompilationTypes"><strong>Тип компиляции</strong></a> -
выбрать тип компиляции объекта. Правильный выбор способа защиты
от изучения и взлома для каждого защищаемого объекта
(процедуры, функции, фрагмента кода) обеспечит оптимальное
соотношение между защищенностью кода и его быстродействием.
VMProtect позволяет пользователю установить следующие типы
компиляции для каждого защищаемого объекта:</li>
<ul>
<li><strong>Мутация.</strong> Исполняемый код
видоизменяется на уровне команд процессора - существующие
команды видоизменяются, добавляются различные мусорные
команды и т.д. Данный тип компиляции относительно слабо
защищает обрабатываемый код от взлома и анализа и главным
образом препятствует определению обрабатываемых функций с
помощью сигнатурных анализаторов (PEiD+KANAL, IDA+FLIRT и
т.д.). Этот тип компиляции целесообразно применять при
защите библиотечных функций, так как они, как правило, не
нуждаются в защите от взлома и анализа и достаточно будет
только изменить их сигнатуры, чтобы взломщик не смог
автоматически определить, какие именно библиотеки
используются в приложении. При использовании мутации
степень защиты от взлома и анализа низкая, скорость
исполнения кода высокая.</li>
<li><strong>Виртуализация.</strong> Исполняемый код
переводится в байт-код, исполняемый на виртуальной машине.
Данный тип компиляции следует применять для всех критичных
участков кода, где помимо противодействия взлому и анализу
важна скорость работы. При использовании виртуализации
степень защиты от взлома и анализа средняя, скорость
исполнения кода средняя.</li>
<li><strong>Ультра (мутация + виртуализация).</strong>
Исполняемый код видоизменяется на уровне команд процессора
и уже после этого переводится в байт-код, исполняемый на
виртуальной машине. Данный тип компиляции следует применять
для всех участков кода, где не важна скорость работы.
Степень защиты от взлома и анализа высокая, скорость
исполнения кода низкая.</li>
</ul>
<li id="LockToKey"><strong>Привязать к серийному номеру</strong> - при включении данной опции защищенная функция будет <a href="manager/features.htm#lock">недоступна без ввода валидного серийного номера</a>. Таким образом можно, например, ограничивать доступ к определенным функциям приложения в незарегистрированной версии.</li>
</ul>
<p id="Search"><strong>Поиск</strong></p>
<p>Необходимые объекты можно отыскать по их имени в универсальном быстром поиске:</p>
<p><img src="images/project_functions_search.png" /></p>
<p>В строке поиска можно использовать стандартные символы подстановки:</p>
<ul>
<li><strong>*</strong> - заменяет группу символов произвольной длины;</li>
<li><strong>?</strong> - заменяет любой одиночный символ.</li>
</ul>
<h3 id="AddFolder">Добавление папки</h3>
<p>Добавление папки осуществляется с помощью контекстного меню:</p>
<p><img src="images/project_functions_menu.png" /></p>
<p>Папки используются для группировки защищаемых объектов в
дереве проекта, а также для группового изменения параметров
защиты (включение в компиляцию, тип компиляции) для всех
объектов из этой папки.</p>
<p>Задайте имя новой папке:</p>
<p><img src="images/project_add_folder.png" /></p>
<h3>Редактирование объектов</h3>
<p>В правой части окна отображается содержимое выбранного
объекта. Если в дереве проекта выбран защищаемый объект, то с
правой стороны отображается дизассемблированное представление
этого объекта:</p>
<p><img src="images/project_functions_content.png" alt=
"Код" /></p>
<p>Щелчок правой кнопкой мыши по строчке кода вызывает контекстное меню:</p>
<p><img src="images/project_functions_menu3.png" /></p>
<ul>
<li><a name="ExtAddress" id="ExtAddress"><strong>Внешний
адрес</strong></a> - включить выбранный адрес в список <a href=
"project_options_external_addresses.htm">внешних адресов</a>;</li>
<li><strong>Конец функции</strong> - ограничить список
команд, которые будут обработаны в процессе компиляции;</li>
</ul>
<p>Если в дереве проекта выбрана папка, то с правой стороны
отображается список функций, входящих в эту папку:</p>
<p><img src="images/project_functions_content2.png" /></p>
<p>Перемещать функции из папки в папку можно простым
перетаскиванием при помощи мыши.</p>
<br />
<br />
<br />
<br />
<hr noshade="noshade" size="1" />
<div align="center">
© 2006-2015 Copyright VMProtect Software
</div>
</body>
</html>