Wo ist eigentlich das Problem?
Wenn man die nötigen Funktionen (CreateProcess, NtUnmapViewOfSection, VirtualAllocEx, WriteProcessMemory, GetThreadContext, SetThreadContext, ResumeThread) importiert kann man sehr leicht eine Datei in den Speicher laden (zumindest klappt das mit nativen Programmen).
Das ist mit VB(.NET) möglich.

Wenn man einen echten Crypter schreiben will - der seine Stub in die Datei injeziert braucht man die Assembler-Sprache, aber das Injezieren (also "Builden" wenn ihr so wollt) ist ebenfalls mit VB(.NET) möglich.

Wem das zuviel Arbeit ist, der soll es einfach lassen.
Fertig!