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


virt

Уважаемый пользователь
Форумчанин
Регистрация
24.11.2016
Сообщения
704
Репутация
228
Интересно стало, как-же будут реагировать антивирусы на вызов 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
Сообщения
63
Репутация
35
Мне кажется если бы ав ругались именно на эту апи с PAGE_EXECUTE_READWRITE была бы тонна ложных срабатываний.
А какой детект на скринах показывает?
 

virt

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

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

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

0b170xor

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

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

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

X-Shar

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

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

Spectrum735

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

X-Shar

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

0b170xor

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

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

Я вообще изначально писал код для изучения tru-gnu-stollman си. Ну никак не для использования в реалиях.
Понятное дело надо нормально доделывать многое.
 

X-Shar

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

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

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

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