Puedes crearte una dll que lea la cadena que se enviará a la consola, haga un injerto en ese sitio hacia una función de tu dll la cual crea un log o una zona de memoria compartida y ejecuta las instrucciones destruidas por el salto y retornas a la parte donde se estaba ejecutando. Con eso podrías enviar toda la salida de consola a tu aplicación usando una dll inyectada. Mira esto:
https://blog.ka0labs.net/post/8/
Sí lo intentas y te quedas atrancado me mandas el ejecutable y te echo un cable. Yo ya que ya me metí en jardines así jajaja.