Введение

Добро пожаловать в мою новую статью, сегодня я покажу вам, как я создаю две функции для шифрования и дешифрования шелл-кода с помощью XOR.

Эти две функции созданы с помощью C++ и их очень легко понять, давайте начнем.

Что такое XOR?

Шифрование XOR — это тип побитовой операции, который обычно используется в криптографии для шифрования данных. Он работает путем объединения открытого текста с секретным ключом с помощью оператора XOR (исключающее или). Результатом этой операции является зашифрованное сообщение, которое можно расшифровать, только объединив его с исходным ключом с помощью той же операции XOR. Безопасность шифрования XOR основана на том факте, что операция XOR является обратимой и очень трудно определить исходный ключ только по зашифрованному тексту.

Почему используется для шифрования шелл-кода?

Шифрование XOR часто используется для шифрования шеллкода, потому что это простая и быстрая операция, которую можно использовать для сокрытия содержимого кода. Операция XOR принимает два двоичных значения и возвращает результат, равный 1, если ровно один из входов равен 1, и 0 в противном случае. Когда для шифрования шеллкода используется шифрование XOR, выбирается ключ, который используется для XOR каждого байта шеллкода. Чтобы расшифровать шелл-код, тот же ключ снова используется для операции XOR каждого байта, что отменяет шифрование и восстанавливает исходный шелл-код.

Использование шифрования XOR для сокрытия содержимого шелл-кода может помочь избежать обнаружения программным обеспечением безопасности, поскольку зашифрованный шелл-код будет иметь другую структуру битов, чем исходный шелл-код, и может не совпадать с известными сигнатурами вредоносного кода. Однако шифрование XOR можно легко взломать, если известен ключ, поэтому его часто используют в сочетании с другими методами, такими как обфускация, чтобы затруднить обратный инжиниринг.

Код

#include <iostream>
#include <string>
#include <iomanip>

using namespace std;
    void XOR_decrypt(unsigned char key) {
        for (int i = 0; i < len; i++) {
            payload[i] = payload[i] ^ key;
            cout << "\\x" << hex << setfill('0') << setw(2) << (int)payload[i];
        }
        cout << endl;
        }
    void XOR_encrypt(unsigned char key){
        for(int i = 0; i < len; i++){
            payload[i] ^= key;
        }
        for(int i = 0; i < len; i++){
            cout << "\\x" << hex << (int)payload[i];
        }
        cout << endl;
        }

Функция XOR_decrypt(unsigned char key) выполняет расшифровку XOR над payload с помощью входного ключа и выводит результат в шестнадцатеричном формате.

Функция XOR_encrypt(unsigned char key) выполняет шифрование XOR над payload с помощью входного ключа и выводит результат в шестнадцатеричном формате.

ПОС

Давайте попробуем код:

Сначала я создаю шеллкод для всплывающего окна calc.

Теперь я поместил сюда в .cpp код:

Он использует объект, потому что этот код на самом деле является объектом из моей библиотеки разработки вредоносных программ, но функции те же, здесь я помещаю ссылку на эту библиотеку:



Давайте выполним:

Первая показывает реальный шеллкод, а затем шифрует внутри во второй части.

Выводы

Это одна из тем, я надеюсь, вам понравится и вы будете использовать ее для разработки своих вредоносных сценариев.

Если вам нравится мой контент и вы хотите помочь мне вывести этот проект на новый уровень, вы можете стать участником, пожертвовав ежемесячную подписку. Ваша поддержка поможет мне продолжать создавать качественный контент. Благодарим вас за щедрость!



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



Спасибо, что прочитали это :)

S12.