diff options
Diffstat (limited to 'help/ru/use_markers.htm')
-rw-r--r-- | help/ru/use_markers.htm | 134 |
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> |