aboutsummaryrefslogtreecommitdiff
path: root/help/ru/use_markers.htm
diff options
context:
space:
mode:
Diffstat (limited to 'help/ru/use_markers.htm')
-rw-r--r--help/ru/use_markers.htm134
1 files changed, 134 insertions, 0 deletions
diff --git a/help/ru/use_markers.htm b/help/ru/use_markers.htm
new file mode 100644
index 0000000..d86c80f
--- /dev/null
+++ b/help/ru/use_markers.htm
@@ -0,0 +1,134 @@
+<!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>Для защиты отдельных участков кода, а также для защиты
+ строковых констант в текст программы вставляют маркеры, которые
+ представляют собой вызов импортируемых процедур, находящихся во
+ внешней DLL-библиотеке (для 32-разрядных приложений используется
+ VMProtectSDK32.dll, а для 64-разрядных - VMProtectSDK64.dll; для
+ защиты драйверов используются VMProtectDDK32.sys и
+ VMProtectDDK64.sys соответственно) - далее по тексту
+ VMProtectSDK. Процедуры и функции, находящиеся в VMProtectSDK, не
+ выполняют каких-либо действий и выступают лишь в роли меток, по
+ которым VMProtect определяет границы защищаемого кода. Начало и
+ конец защищаемого блока, соответственно, маркируется следующим
+ образом:</p>
+
+ <ul>
+ <li><strong>Delphi</strong>
+ <pre class="code">uses VMProtectSDK;
+
+VMProtectBegin(НАЗВАНИЕ_МАРКЕРА);
+...
+VMProtectEnd;
+</pre>
+ </li>
+
+ <li><strong>C/C++</strong>
+ <pre class="code">#include "VMProtectSDK.h"
+
+VMProtectBegin(НАЗВАНИЕ_МАРКЕРА);
+...
+VMProtectEnd();
+</pre>
+ </li>
+
+ <li><strong>MASM</strong>
+ <pre class="code">include VMProtectSDK.inc
+
+invoke VMProtectBegin,SADD(НАЗВАНИЕ_МАРКЕРА)
+...
+invoke VMProtectEnd
+</pre>
+ </li>
+
+ <li><strong>Visual Basic</strong>
+ <pre class="code">VMProtectBegin (StrPtr(НАЗВАНИЕ_МАРКЕРА))
+...
+VMProtectEnd
+</pre>
+ </li>
+ </ul>
+
+ <p>Также вместо VMProtectBegin можно использовать маркеры с
+ предустановленными <a href=
+ "project_functions.htm#CompilationTypes">типами
+ компиляции</a>:</p>
+
+ <ul>
+ <li>VMProtectBeginVirtualization - маркер будет использовать
+ тип компиляции "Виртуализация".</li>
+
+ <li>VMProtectBeginMutation - маркер будет использовать тип
+ компиляции "Мутация".</li>
+
+ <li>VMProtectBeginUltra - маркер будет использовать тип
+ компиляции "Ультра".</li>
+ </ul>
+
+ <p>Обработка маркеров производится следующим образом: при анализе
+ кода защищаемого приложения VMProtect находит все вызовы процедур
+ и функций VMProtectSDK. Границы защищаемых блоков определяются по
+ парам маркеров
+ VMProtectBegin/VMProtectBeginVirtualization/VMProtectBeginMutation/VMProtectBeginUltra
+ и VMProtectEnd. В процессе обработки проекта с помощью VMProtect
+ из кода защищаемой программы удаляются как сами маркеры, так и
+ упоминание о библиотеках VMProtectSDK, поэтому нет необходимости
+ включать данные библиотеки в дистрибутив программы. Маркеры
+ удаляются независимо от того, были они включены в компиляцию или
+ нет. При использовании именованных маркеров их имена также
+ удаляются.</p>
+
+ <p>Если задано название маркера, ему будет присвоено имя вида
+ "VMProtectMarker НАЗВАНИЕ_МАРКЕРА". Если название маркера не
+ задано, ему будет присвоено уникальное имя вида
+ "VMProtectMarker"+номер маркера по порядку. Однако использование
+ неименованных маркеров имеет один серьезный недостаток,
+ заключающийся в том, что при вставке в исходный код программы
+ нового маркера нумерация неименованных маркеров изменится,
+ поэтому при защите программ всегда целесообразно использовать
+ именованные маркеры.</p>
+
+ <p>Важным моментом, который необходимо учитывать при работе с
+ маркерами, является то, что нельзя допускать переходы из
+ незащищенных участков внутрь маркера, что может произойти,
+ например, при пометке маркером только части цикла. В случае если
+ приложение после защиты с использованием маркеров стало
+ неработоспособным, адреса переходов из незащищенных участков
+ можно определить с помощью включения опции "Режим отладки". В
+ данном режиме, при работе защищенного приложения из-под
+ отладчика, на месте обнаружения переходов из незащищенного
+ участка кода в защищенный отладчик будет прерывать выполнение
+ программы. После обнаружения всех подобных переходов необходимо
+ изменить местоположение маркеров в коде программы либо, если это
+ невозможно, пометить эти адреса как внешние, используя
+ графическую версию VMProtect.</p>
+
+ <br />
+ <br />
+ <br />
+ <br />
+ <hr noshade="noshade" size="1" />
+
+ <div align="center">
+ © 2006-2015 Copyright VMProtect Software
+ </div>
+</body>
+</html>