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!