Aun asi hay APIs que son detectadas al momento...como por ejemplo algunas TerminateProcess y asi algunas...pero weno normalmente las APIs suelen ser mejor...
lo de cifrar Strings es facil...consiste en usar alguna funcion que desencripte una String para que los AVs al analizar nuestro archivo no vean Strings sospechosas...
Por ejemplo si el AV detecta esta String "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Windows Update" es cantosisima
entonces lo que haces es encriptarla y que quede un texto no legible...y despues en vez de poner la String pones la funcion que descifra a la String...
incluso puedes usar las propias funciones del VB para cifrar la String...como por ejemplo StrReverse...el texto lo pones del revés y después en vez de pasar el texto pones la funcion StrReverse con el texto del reves...
A ver te poní aun codigo pero tengo mucha prisa y no me da tiempo si no entendiste después te pongo algunos...
Saludos