mirror of
https://github.com/Obfuscator-Collections/VMProtect.git
synced 2024-12-27 08:49:27 +03:00
108 lines
7.9 KiB
HTML
108 lines
7.9 KiB
HTML
|
<!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>
|