Te puedo dar una alternativa, podes a partir de un ejecutable hacer otro ejecutable teniendo un ejecutable xD. me explico.
Tenes el "Compilador.exe", la fuente.exe. Con compilador.exe teniendo como base fuente.exe, podes crear un tercer archivo llamado compilado.exe. Ya se que habias dicho nada de copiar, pero solo es una alternativa.
Podes grabar los datos que insertes en compilador.exe al final de fuente.exe, y crear el archivo compilado.exe que leera estos datos y los adaptara a un codigo.
El codigo en visual basic es el siguiente:
Este es el primero que se tiene que compilar
Fuente.exe
'Para este proyecto se necesita un CommandButton de nombre Command1
Dim P As New PropertyBag, Mensaje
Private Sub Command1_Click()
MsgBox Mensaje
End Sub
Private Sub Form_Load()
Dim P1 As Long, Temp, ByteArray() As Byte
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
Get #1, LOF(1) - 3, P1
Seek #1, P1
Get #1, , Temp
ByteArray = Temp
P.Contents = ByteArray
Close #1
Mensaje = P.ReadProperty("Msgbox")
Me.Caption = P.ReadProperty("Titulo")
End Sub
Compilador.exe
'Se necesita un CommandButton de nombre Command1
'Dos campos de texto con nombre Text1 y Text2 respectivamente
Private Sub Command1_Click()
Dim P As New PropertyBag, P1 As Long, Temp
P.WriteProperty "Titulo", Text1.Text
P.WriteProperty "Msgbox", Text2.Text
FileCopy App.Path & "\fuente.exe", App.Path & "\compilado.exe"
Open App.Path & "\compilado.exe" For Binary As #1
P1 = LOF(1)
Temp = P.Contents
Seek #1, LOF(1)
Put #1, , Temp
Put #1, , P1
Close #1
End Sub
No se me ocurre algo mas para aplicar xD
saludos!