VMProtect/help/ru/dictionary.htm

108 lines
7.9 KiB
HTML
Raw Permalink 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">
</style>
</head>
<body>
<h1>Словарь терминов</h1>
<p>Эффективное использование любого инструмента невозможно без
понимания терминологии, специфичной для соответствующей
предметной области. В данном глоссарии дана расшифровка
терминологии, применяемой в разрезе использования программы
VMProtect. Глоссарий не претендует на универсальность и
всеохватность, предложенное в нем толкование терминов может
отличаться от классического.</p>
<p><a name="ByteCode" id="ByteCode"><strong>Байт-код</strong></a> - код, полученный после
преобразования машинных команд реального процессора в команды
виртуальной машины.</p>
<p><a name="Virtualization" id="Virtualization"><strong>Виртуализация</strong></a> - процесс преобразования части
исполняемого кода приложения в команды виртуальной машины,
обладающей неизвестной потенциальному взломщику системой команд,
архитектурой и логикой работы. Виртуализированные участки кода
выполняются интерпретатором (исполнителем виртуальной машины) без
предварительного преобразования в машинные коды процессора. В
общем случае задача реинжиниринга виртуализированных фрагментов
сводится к изучению архитектуры виртуальной машины, созданию
дизассемблера, соответствующего архитектуре имитируемого
виртуальной машиной процессора, и анализу дизассемблированного
кода.</p>
<p><a name="VirtualMachine" id="VirtualMachine"><strong>Виртуальная машина</strong></a> - программный код,
непосредственно выполняющий байт-код в защищенной программе.</p>
<p><a name="Watermarks" id="Watermarks"><strong>Водяные
знаки</strong></a> - уникальный для каждого пользователя массив
байт, позволяющий однозначно идентифицировать легального
владельца взломанной копии программы.</p>
<p><a name="Mutation" id="Mutation"><strong>Мутация</strong></a> - замена исходной команды аналогом
или определенной последовательностью команд, обеспечивающей тот
же результат, что и исходная команда.</p>
<p><a name="Obfuscation" id="Obfuscation"><strong>Обфускация</strong></a> - совокупность методик и средств,
направленных на затруднение анализа программного кода. В
зависимости от языка программирования, на котором написана
защищаемая программа, используются различные типы
программ-обфускаторов. При обфускации приложений, написанных на
интерпретируемых языках (Perl, PHP и др.), изменения вносятся в
исходные тексты: удаляются комментарии, переменным присваиваются
бессмысленные имена, выполняется шифрация строковых констант и
т.д. При обфускации программ, написанных на Java / .NET,
выполняют преобразования байт-кода, обрабатываемого виртуальной
машиной. При обфускации скомпилированных программ модифицируют
машинный код: в него вносятся "мусорные" команды, "мертвый код",
случайные переходы, выполняется мутация исходных команд, часть
операций переносится в стек, а также выполняются различные
структурные (реже математические) преобразования. При
реинжиниринге обфусцированых участков кода их пытаются привести в
исходный вид, что при определенном подходе к обфускации
становится очень трудоемкой задачей.</p>
<p><a name="Protector" id="Protector"><strong>Программа-протектор</strong></a> - программа,
предназначенная для защиты других программных продуктов от
взлома. Подавляющее большинство современных протекторов не
модифицируют исходный код приложения, а выполняют его
упаковку/шифрацию, при этом основной упор сделан на защиту
программы (процедуры) распаковки/расшифровки.</p>
<p><a name="EntryPoint" id="EntryPoint"><strong>Точка входа в
программу (EntryPoint)</strong></a> - представляет собой
начальный адрес, с которого начинается исполнение загруженной в память программы.</p>
<p><a name="Pack" id="Pack"><strong>Упаковка</strong></a> - метод
защиты кода приложения, при котором производится сжатие
исполняемого файла программы и/или используемых библиотек с
помощью нестандартных алгоритмов. При использовании упаковки
защищаемый программный код сжимается упаковщиком, а при запуске
приложения у конечного пользователя производится его полная или
частичная распаковка.</p>
<p><a name="Crypt" id="Crypt"><strong>Шифрация</strong></a> - защита части кода приложения с
помощью криптостойких алгоритмов. Программное обеспечение,
защищенное с помощью шифрации, требует от конечного пользователя
ввода кода активации, который снимает установленные разработчиком
ограничения незарегистрированной версии.</p><br />
<br />
<br />
<br />
<br />
<hr noshade="noshade" size="1" />
<div align="center">
© 2006-2015 Copyright VMProtect Software
</div>
</body>
</html>