Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Софт [Сурс] guardian-rs — x86-64 Code/PE Virtualizer на Rust

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
682
Реакции
18
Нашел на гитхабе любопытный проект — guardian-rs. Это виртуализатор кода для x86-64, написанный на Rust. Для тех, кто копает в сторону разработки собственных протектов и обфускации, — мастхэв к ознакомлению.

По сути, перед нами база для создания протектора. Софт умеет вытягивать функции из бинарника (при наличии .map файла) и переводить их выполнение под управление виртуальной машины.

Особенности обфускатора:
  1. Виртуализация функций на основе .map файлов.
  2. Внедрение .text секции VM прямо в целевой бинарник.
  3. Архитектура позволяет легко расширять набор поддерживаемых инструкций.

Техническая часть VM:
  1. Обработка неподдерживаемых инструкций через механизм vmexit и reenter (релокация и выполнение).
  2. Полное сохранение контекста: сохраняются GPRs, RFlags и XMM регистры.
  3. Стек-ориентированная архитектура с динамическим выделением виртуального стека.
  4. Изолированный CPU стек для защиты от повреждения данных при выполнении виртуализированного кода.
  5. Ручной расчет RFLAGs (автор не использует pushfq).
  6. Сборка в формате PIE (Position Independent Executable).

Стоит учитывать, что условные переходы (Conditional Jumps) на данный момент реализованы не полностью. Для серьезных проектов придется допиливать логику ветвления руками, но как каркас для реверса и обучения — проект крайне полезный.

Сурс проекта для изучения:
Пожалуйста, авторизуйтесь для просмотра ссылки.

Интересно, насколько легко эта поделка поддается девиртуализации через стандартные тулзы, если не расширять кастомный маппинг инструкций.
 
Назад
Сверху Снизу