На заметку Реакция антивирусов на VirtualAlloc с флагом PAGE_EXECUTE_READWRITE (1 Viewer)

Кто просматривает этот контент: "Тема" (Всего пользователей: 0; Гостей: 1)


virt

Уважаемый пользователь
Форумчанин
Регистрация
24.11.2016
Сообщения
705
Репутация
239
Jabber
Telegram
Интересно стало, как-же будут реагировать антивирусы на вызов VirtualAlloc с флагом PAGE_EXECUTE_READWRITE (Флаг на исполнение).

Думал будет елочка на dyncheck.com, а-нет результаты весьма неплохие.)))

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

Тестовая программа:

1)Выделяется память VirtualAlloc с флагом PAGE_EXECUTE_READWRITE.

2)Копируется туда, код функции Xor.

3)Для проверки шифрует/расшифровывает тестовую строку и выводит результат.

C:
#pragma optimize( "", off )

#include <windows.h>
#include <stdint.h>

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

#define getpagesize() 4096

void functionMemoryXorStart(char* buffer, long fileSize, char* key, long keyLength)
{
    for (int i = 0; i < fileSize; i++) {
        buffer[i] = buffer[i] ^ key[i % keyLength];
    }
}

void functionMemoryXorEnd(void)
{
    return;
}

static char buffer_test[] = { 'H','I','\0' };
static char key[] = { '1','2','\0' };

int main(int argc, char** argv)
{

    void (*p_mem_func) (char*, long, char*, long) = NULL;
    p_mem_func = (void(__cdecl*)(char*, long, char*, long)) VirtualAlloc(NULL, getpagesize(), MEM_COMMIT, PAGE_EXECUTE_READWRITE);

    if (p_mem_func == NULL) {
        printf(" VirtualAlloc is bad\n");
        return (-1);
    }
   
    uint32_t size_func = (uintptr_t)(&functionMemoryXorEnd) - (uintptr_t)(&functionMemoryXorStart);
    memcpy(p_mem_func, functionMemoryXorStart, size_func);

    //Шифрование
    p_mem_func (buffer_test, 3, key, 2);
    printf("Buffer crypt test:%s \n\n", buffer_test);


    //Расшифровка
    p_mem_func(buffer_test, 3, key, 2);
    printf("Buffer decrypt test:%s \n", buffer_test);

    while (1);

    return 0;
}
#pragma optimize( "", on)

В итоге вот результаты:

1588597802322.png


На запуск:

1588597837893.png
 

Jefferson

Уважаемый пользователь
Форумчанин
Регистрация
09.06.2019
Сообщения
52
Репутация
30
Мне кажется если бы ав ругались именно на эту апи с PAGE_EXECUTE_READWRITE была бы тонна ложных срабатываний.
А какой детект на скринах показывает?
 

virt

Уважаемый пользователь
Форумчанин
Регистрация
24.11.2016
Сообщения
705
Репутация
239
Jabber
Telegram
Непомню точно, может он вообще на пустую форму детектит ?)

Бит кстати единственный, кто криптор детектит, основанный на этом способе, остальные все, в т.ч. и касперский дает запустить.)

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

0b170xor

Уважаемый пользователь
Форумчанин
Регистрация
13.01.2020
Сообщения
69
Репутация
25
Непомню точно, может он вообще на пустую форму детектит ?)

Бит кстати единственный, кто криптор детектит, основанный на этом способе, остальные все, в т.ч. и касперский дает запустить.)

Ну раз флаг исполнения разрешен, тут много чего можно сделать для скрытия/запутывания кода.
Скорее всего ав прошаренные, и детектят именно то что будет xorриться. Увидет что из xor пейлоуда получается хороший такой зверь, затрещит елкой сразу.
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Скорее всего ав прошаренные, и детектят именно то что будет xorриться. Увидет что из xor пейлоуда получается хороший такой зверь, затрещит елкой сразу.
Как показали мои тесты, АВ автоматически расшифровывают XOR, по крайне мере если ключ будет 1-3 символа.

Поэтому нафиг XOR, лучше используйте нормальные алгоритмы, такие как RC4, XTEA и т.д.)))
 

Spectrum735

Житель форума
Форумчанин
Регистрация
21.02.2019
Сообщения
32
Репутация
2
Что за сервис, если не секрет? Точно не Virus Total. На сколько мне известно он сливает образцы для дальнейших исследований
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Что за сервис, если не секрет? Точно не Virus Total. На сколько мне известно он сливает образцы для дальнейших исследований
 

0b170xor

Уважаемый пользователь
Форумчанин
Регистрация
13.01.2020
Сообщения
69
Репутация
25
Как показали мои тесты, АВ автоматически расшифровывают XOR, по крайне мере если ключ будет 1-3 символа.

Поэтому нафиг XOR, лучше используйте нормальные алгоритмы, такие как RC4, XTEA и т.д.)))
Я вообще изначально писал код для изучения tru-gnu-stollman си. Ну никак не для использования в реалиях.
Понятное дело надо нормально доделывать многое.
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Я вообще изначально писал код для изучения tru-gnu-stollman си. Ну никак не для использования в реалиях.
Понятное дело надо нормально доделывать многое.
Если интересно, то боевой можно глянуть тут:Малварь как искусство - Фреймворк криптора/протектора на шелл-кодах x86/x64

Расшифровка (RC4), антиэмуляция и запуск пейлоада в шеллкоде, сам шеллкод также зашифрован...)

Эти тесты не боевые, а просто проверяют некоторые моменты, также как мне кажется, интересно, что антивирусы сами подбирают пароль и расшифровывают XOR.

Также например если архив зашифровать, например 111, антивирус это сбрутит, авира это дело любит.
 
Верх