1. Programa en ASM una función para ejecutar el programa que quieras (usando API's) y luego saca la shellcode
2. En el programa victima, busca una región no usada (que contenga 0's) y, si el tamaño te lo permite, inserta tu shellcode dentro. Si el tamaño no te lo permite, tendrás que agrandar la sección o crear una nueva para poder insertar la shellcode
3. Cambiar el Entry Point del programa victima para que apunte a tu Shellcode
4. Una vez terminado, saltar al Entry Point Original y el programa seguirá su curso normalmente.
Notas: No es conveniente dejar las direcciones de las API's harcodeadas (ya que no en todas las versiones de Windows, las API's estan en la misma dirección), para ello te recomiendo leer este post de Sirdarckat:
https://foro.elhacker.net/empty-t130073.0.html Una vez tengas las direcciones de LoadLibrary y GetProcAddress podrás cargar las librerias que quieras y usar las API¡s que te plazcan.
PD: Existen otras variantes para hacer lo que pides, pero esta es una

Un Saludo
