• Привет !

    На форуме есть зеркало в ТОРе:rusfwz3cukdej7do.onion

    Обратная связь:info@ru-sfera.org

    Всего доброго !

Малварь как искусство Как обфусцировать вызовы WinAPI (1 Viewer)

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

virt

Уважаемый пользователь
Форумчанин
Регистрация
24.11.2016
Сообщения
707
Репутация
222
А Индюша как же?смех-смех!!!

Вы молодцы, что что то совместно пилите, и делитесь этим)
Да он что-то давно сюда не заходит, на васме в основном и на клабе.

Да тут заглохло как-то.

Возможно ещё отчасти я и сам виноват, периодически удалял ресурс.)

Так держу ресурс, что-бы интересней было что-то изучать.
 

Edith Wooten

Уважаемый пользователь
Форумчанин
Регистрация
17.04.2019
Сообщения
108
Репутация
22
Не, я на гитхабе наткнулся практически случайно:)



Чем меньше маркеров будет, тем лучше. Например в у вас в форке есть кусок:

Код:
auto mdl = (LDR_MODULE*)mlink;
    do
    {
        mdl = (LDR_MODULE*)mdl->e[0].Flink;

        if (mdl->base != nullptr)
        {
            if (!lstrcmpiW(mdl->dllname.Buffer, L"kernel32.dll")) //сравниваем имя библиотеки в буфере с необходимым
            {
                break;
            }
        }
    }
Что не есть гуд. Ибо в макете его можно юзать для демонстрации, а в реале не стоит юзать lstrcmpiW. Лучше накастылять что то вроде:

Код:
    do
    {
        mdl = (LDR_MODULE*)mdl->e[0].Flink;

        if (mdl->base != NULL)
        {
            if ((GetHashBase(mdl)) == (0x5d23cc39))    // KERNEL32.DLL
            {
                break;
            }
        }
    } while (mlink != (INT_PTR)mdl);
Код:
DWORD GetHashBase(LDR_MODULE* mdll)
{

    char name[64];

    size_t i = 0;

    while (mdll->dllname.Buffer[i] && i < sizeof(name) - 1)
    {
        name[i] = (char)mdll->dllname.Buffer[i];
        i++;
    }

    name[i] = 0;

    return MURMUR_HASH(name, API_STRLEN(name), HASHING_SEED);
}
ЗЫ

Сорьте за качество кода, я его рипаю и пытаюсь просто суть показать.
привет kins bank bot