Yo recomendaría usar C. En C++ no tendría mucho sentido (un virus es procedural), en VB6 quizás algo (hace muchísimos años que no lo toco) y en VB.NET no tendría nada de sentido (ejecutables pesados, lentos, requiere la máquina virtual .NET que no está instalada por defecto en XP).

Sólo estoy dando sugerencias...