Криптор

Криптор

Jedy

Привет, сегодня я расскажу как сделать простой криптор на C++ БЕЗ использования .NEТ и прочей чепухи.

Из чего состоит любой криптор, как проект:

1) Стаб - это шаблон с готовыми функциями

2) Билдер - та программ, которая заполняет шаблон

Функционал билдера:

- Шифрование файла (вируса) с помощью XOR

- Pump файла. Реализован будет через "factor".

- Заполнения шаблона

Функционал стаба:

- Распаковка и запуск файла в памяти

- Защита от виртуальной машины

- Мутация (рандомная) кода (кривая)

1. Начнем с общей подготовки:

1) Для начала создадим проект (на C++, никакого шарпа):

 

(нажимаем "ок")

2) Далее создаем еще один проект и общий хедер (в котором будет зашифрованный ключ):

 

3) Теперь подключаем хедер, исходный код, которого можно найти здесь: https://pastebin.com/yrBHGBur

Данный хедер отвечает за шифрование данных. Таким образом реверсер не сможет просмотреть содержание (константных) строк.

*Использование:

Код:

#include "xor.h" //сверху


XorStr("Тут ваш текст");



Подключаем наш хедер и объявляем переменную-ключ:


 


5) В итоге хедер должен выглядеть вот так:

 

2. Далее билдер:

1) Определимся как будет работать билдер:

Запись байтов файла для крипта в переменную -> Памп, если надо -> XOR ресурсов -> Запись настроек в ресурсы -> Запись байтов в ресурсы

2) Создадим Main.cpp для билдера и подключим заголовки:


 

2. Считаем байты в vector<unsigned char>


4) Шаг 2 - Памп, если надо:

 

5) Шаг 3 - XOR байтов (написал отдельную функцию, которую потом скопирую в стаб):

 


6) Шаг 4 - Записываем настройки:

 

7) Шаг 5 - Записываем байты:

 

Готово! Исходный код будет внизу темы (для тех кому лень читать).

3. Теперь перейдем к стабу:

Готово! Исходный код будет внизу темы (для тех кому лень читать).

Оформим Main.cpp:

 

Добавим RunPe.h с этим содержимом https://pastebin.com/VjGRxxj3

1) Определимся, как будет работать стаб:

Определение настроек -> Определение ВМ (опционально) -> Раскриптовка файла -> Инжект в себя же или в attrib.exe -> Мутация кода

2) Начнем с определения настроек, для этого нам понадобится функция для чтения байтов из ресурсов:

 

Теперь загрузим настройки:

 

3) Проверяем на ВМ:

 


4) Завершающий код, где мы дешифируем и инжектим файл:

 


*Я не забыл про мутацию кода, она будет в проекте, который можно скачать в конце темы.

===========================================================

Проверим работоспособность криптора:

 

Отлично, все работает!

Скачать проект: https://www.sendspace.com/file/9559cu