Исходники - POC: Статический анализ с привязкой к HWID и обфускацией | Enginr.ru - Форум социальной инженерии
Этот проект — Proof of Concept (POC), цель которого — усложнить статический анализ исполняемых файлов.

Сценарии применения

Допустим, вы разрабатываете:
  • Драйвер
  • DLL
  • EXE-файл
И вы хотите:
  1. Затруднить реверс-инжиниринг на других машинах.
  2. Ограничить запуск файла только на вашем ПК (или определённом устройстве).

Как это работает?

Скомпилированный бинарный файл будет содержать:
  1. Основные функции (экспортируемые с префиксом FunctionCode), зашифрованные через XOR.
  2. Фиктивную функцию (также с префиксом FunctionCode, но идущую последней в алфавитном порядке — она служит границей).
  3. Функцию дешифровки, которая:
    • Генерирует ключ на основе аппаратных характеристик ПК (в этом проекте метод примерный, его стоит заменить).
    • Расшифровывает код перед вызовом функции и снова шифрует после выполнения.

Проблема и её решение

После компиляции бинарный файл не будет работать, так как зашифрованный код — это не валидные x64-instructions.
Для этого создан XORTool — утилиту, которая:

  • Применяет XOR к экспортируемым функциям, делая программу работоспособной на целевой машине.

Дополнительный сценарий

  1. Вы предоставляете пользователю утилиту для генерации ключа.
  2. Пользователь запускает её и отправляет вам полученный HWID-ключ.
  3. Вы настраиваете XORTool под этот ключ → теперь программа будет работать только на его ПК.

Важные замечания

Предположения проекта:
  • Экспортируемые функции должны быть непрерывными (в таблице экспорта и в памяти).
  • Текущий метод генерации ключа ненадёжен (это лишь пример, его нужно усилить).
  • Драйвер пока не доработан (в идеале — BSOD при неверном ключе).

Для кого это полезно?

  • Разработчики, которым нужно защитить софт от реверса.
  • Те, кто хочет привязать программу к конкретному железу.
  • Энтузиасты низкоуровневого программирования и обфускации.

 
Активность
Пока что здесь никого нет.
Назад
Сверху