Умная сборка малвари

Я в полнейшем недоумении, когда вижу очередной семпл с дебаг строкой или датой компиляции. Ведь, Visual Studio предоставляет такие замечательные инструменты как пре- и пост-компиляция!

Для наших задач они подходят идеально. Засунем в них свой python скрипт, который будет отвечать за чистку всего лишнего.

pre

Почему перед именем скрипта стоит “../” ? Рабочая директория сборки находится уровнем ниже. Чтобы узнать её, достаточно подставить в это поле команду “dir”, которая выведет информацию о текущей папке.

Advanced pefile

Модуль pefile позволяет получать смещения любых структур и многие из них парсит, но не имеет внятной документации. Если вам нужно узнать какие поля есть у конкретного класса, обычно достаточно сделать:

Если же в классе переопределён метод __str__ то имен мы не получим, для этого есть метод __dict__

Вырезаем лишнее

Что необходимо вырезать из файла?

  • дату сборки
  • отладочную информацию

Полный код можно скачать с github

Почему мы вырезаем TimeDateStamp по всему файлу? Он может содержаться во многих местах, например в ресурсах. Вырезать руками нет никакого смысла, ибо этот dword довольно уникален.

ToDo: RichHeader

Добавляем новое

Вырезать мета-данные хорошо, а шифровать данные на пре-компиляции ещё лучше! Давайте перед сборкой шифровать некую библиотеку и преобразовывать её в include файл, с которым можно работать!

Было:

Стало:

 

Что дальше?

С вами программа “Итоги” и я, её ведущий, Auth0r. Скрипты пре- и пост- сборки обладают огромным потенциалом, мы осветили лишь малую часть области применения.

Мы можем морфить код перед сборкой, шифровать данные, навешивать декрипторы, скрывать импорт, собирать сложные структуры и многое другое!

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

Поддержите нас ретвитом!

Добавить комментарий