HHIDE_DUMP
Гость
H
HHIDE_DUMP
Гость
Привет, сегодня я расскажу как сделать простой криптор на C++ БЕЗ использования .NEТ и прочей чепухи.
Из чего состоит любой криптор, как проект:
1) Стаб - это шаблон с готовыми функциями
2) Билдер - та программ, которая заполняет шаблон
Функционал билдера:
- Шифрование файла (вируса) с помощью XOR
- Pump файла. Реализован будет через "factor".
- Заполнения шаблона
Функционал стаба:
- Распаковка и запуск файла в памяти
- Защита от виртуальной машины
- Мутация (рандомная) кода (кривая)
1. Начнем с общей подготовки:
1) Для начала создадим проект (на C++, никакого шарпа):
(нажимаем "ок")
2) Далее создаем еще один проект и общий хедер (в котором будет зашифрованный ключ):
3) Теперь подключаем хедер, исходный код, которого можно найти здесь:
Данный хедер отвечает за шифрование данных. Таким образом реверсер не сможет просмотреть содержание (константных) строк.
*Использование:
Код:
#include "xor.h" //сверху
XorStr("Тут ваш текст");
Подключаем наш хедер и объявляем переменную-ключ:
4) Чтобы определится какой ключ нам нужен воспользуемся онлайн хешатором:
5) В итоге хедер должен выглядеть вот так:
2. Далее билдер:
1) Определимся как будет работать билдер:
Запись байтов файла для крипта в переменную -> Памп, если надо -> XOR ресурсов -> Запись настроек в ресурсы -> Запись байтов в ресурсы
2) Создадим Main.cpp для билдера и подключим заголовки:
3) Шаг 1 - Запись байтов файла для крипта в ресурсы:
1. Сделаем так, чтобы стаб копировался и не приходилось делать кучу однотипной работы все время:
2. Считаем байты в vector<unsigned char>
4) Шаг 2 - Памп, если надо:
5) Шаг 3 - XOR байтов (написал отдельную функцию, которую потом скопирую в стаб):
6) Шаг 4 - Записываем настройки:
7) Шаг 5 - Записываем байты:
Готово! Исходный код будет внизу темы (для тех кому лень читать).
3. Теперь перейдем к стабу:
Оформим Main.cpp:
Добавим RunPe.h с этим содержимом
1) Определимся, как будет работать стаб:
Определение настроек -> Определение ВМ (опционально) -> Раскриптовка файла -> Инжект в себя же или в attrib.exe -> Мутация кода
2) Начнем с определения настроек, для этого нам понадобится функция для чтения байтов из ресурсов:
Теперь загрузим настройки:
3) Проверяем на ВМ:
4) Завершающий код, где мы дешифируем и инжектим файл:
*Я не забыл про мутацию кода, она будет в проекте, который можно скачать в конце темы.
===========================================================
Проверим работоспособность криптора:
Отлично, все работает!
Скачать проект:
Из чего состоит любой криптор, как проект:
1) Стаб - это шаблон с готовыми функциями
2) Билдер - та программ, которая заполняет шаблон
Функционал билдера:
- Шифрование файла (вируса) с помощью XOR
- Pump файла. Реализован будет через "factor".
- Заполнения шаблона
Функционал стаба:
- Распаковка и запуск файла в памяти
- Защита от виртуальной машины
- Мутация (рандомная) кода (кривая)
1. Начнем с общей подготовки:
1) Для начала создадим проект (на C++, никакого шарпа):
(нажимаем "ок")
2) Далее создаем еще один проект и общий хедер (в котором будет зашифрованный ключ):
3) Теперь подключаем хедер, исходный код, которого можно найти здесь:
Данный хедер отвечает за шифрование данных. Таким образом реверсер не сможет просмотреть содержание (константных) строк.
*Использование:
Код:
#include "xor.h" //сверху
XorStr("Тут ваш текст");
Подключаем наш хедер и объявляем переменную-ключ:
4) Чтобы определится какой ключ нам нужен воспользуемся онлайн хешатором:
5) В итоге хедер должен выглядеть вот так:
2. Далее билдер:
1) Определимся как будет работать билдер:
Запись байтов файла для крипта в переменную -> Памп, если надо -> XOR ресурсов -> Запись настроек в ресурсы -> Запись байтов в ресурсы
2) Создадим Main.cpp для билдера и подключим заголовки:
3) Шаг 1 - Запись байтов файла для крипта в ресурсы:
1. Сделаем так, чтобы стаб копировался и не приходилось делать кучу однотипной работы все время:
2. Считаем байты в vector<unsigned char>
4) Шаг 2 - Памп, если надо:
5) Шаг 3 - XOR байтов (написал отдельную функцию, которую потом скопирую в стаб):
6) Шаг 4 - Записываем настройки:
7) Шаг 5 - Записываем байты:
Готово! Исходный код будет внизу темы (для тех кому лень читать).
3. Теперь перейдем к стабу:
Оформим Main.cpp:
Добавим RunPe.h с этим содержимом
1) Определимся, как будет работать стаб:
Определение настроек -> Определение ВМ (опционально) -> Раскриптовка файла -> Инжект в себя же или в attrib.exe -> Мутация кода
2) Начнем с определения настроек, для этого нам понадобится функция для чтения байтов из ресурсов:
Теперь загрузим настройки:
3) Проверяем на ВМ:
4) Завершающий код, где мы дешифируем и инжектим файл:
*Я не забыл про мутацию кода, она будет в проекте, который можно скачать в конце темы.
===========================================================
Проверим работоспособность криптора:
Отлично, все работает!
Скачать проект:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!