Виртуальные машины изнутри

Виртуальные машины изнутри
Виртуальная машина это не только Vbox или Vmware, это общее название технологии виртуализации.

Буквально год назад, мы публиковали crackme, основанный на виртуальной машине. Опыт был довольно интересным, поэтому Я решил осветить это отдельной публикацией.

Виртуальная машина

Сабж - это алгоритм, который умеет выполнять байткод некоего виртуального процессора.



Область применения

Виртуальные машины полезны в антиотладочных целях, вы не сможете понять как работает алгоритм (написанный на байткоде вирт-машины), пока не отреверсите саму виртуальную машину.
Эмуляторы реальных процессоров позволяют нам поиграть в старые 8-битные игры, а если интерпретатор написан на платформо-независимом языке, мы получаем возможность запускать старые программы где угодно.
Кроме того, эмуляторы выполняют историческую задачу, "консервируя"  старые процессоры на потеху будущим поколениям.
Эмуляторы активно используются антивирусами для снятия пакеров и смежных задач.

Детали работы

Нет ограничений на правила работы виртуальной машины, вы можете взять существующий процессор и эмулировать интересующие вас опкоды или придумать свои правила игры.
Вся работа виртуальной машины это конвеер, считывающий опкоды и отправляющий их  в ад   "на исполнение", посредством вызова нужной заглушки, которая будем менять значение виртуальных регистров или памяти.
Таким образом, от нас зависит:
  • количество регистров
  • модель адресации памяти
  • формат опкодов
  • набор команд
  • реализация стека
  • и тому подобное
Исходный код

Я решил выложить исходники моей старой виртуальной машины as-is и отдать их на растерзание вам, думаю после этого все вопросы о работе таких вещей отпадут.
https://github.com/coruws/vm1

Заключение

Эмуляторы - очень интересная тема, возможно я вернуть к ней позднее.
Подписывайтесь на наш Twitter!
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
Антивирус для мозга!

Лечим цифровую неграмотность без побочных эффектов

Активируйте защиту — подпишитесь

VxLab

Blog о вирусных технологиях