# Маркеры виртуализации (VM Markers) - Ручная разметка кода

> Использование маркеров VM в исходном коде (Delphi, C++, VB) для точечной виртуализации критических участков программы.

Canonical HTML: <https://www.niceprotect.com/help/ru/virtualize_markers.htm>

## Virtualize markers


DotFix NiceProtect поддерживает маркеры кода для морфинга и виртуализации 32 битных функций. Для использования этой возможности вы должны использовать файлы и примеры из SDK. В общем виде пометка функций для защиты имеет вид:

**Delphi:**


  {$I protect_start.inc}

  ваш код;

  {$I protect_end.inc}

**C++:**


  #include "protect.h"

  protect_start;

  ваш код;

  protect_end;

**Visual Basic 5.0 / 6.0:**


  Call VarPtr("$$protect_start$$")

  ваш код

  Call****VarPtr("$$protect_end$$")


Примеры использования маркеров располагаются в папке SDK\Examples.


Маркеры NiceProtect ищет и виртуализирует автоматически при нажатии кнопки **Start**, никаких дополнительных опций для этого не требуется.

**Обратите внимание:** обработчики ошибок (конструкции try ... except ... finally, SEH фреймы и т.д.), а также switch-case блоки не могут быть защищены с использованием маркеров. Также защищенный маркерами код будет работать неверно, в случае если какой либо код Вашей программы имеет переходы внутрь защищенного блока. Причина проста - на месте защищенного блока размещается мусорный код, а защищенный код переносится в секцию защиты в мутированном и виртуализованном виде.
