Una vez hecho esto agregas el archivo que querés ocultar al final de tu ejecutable y guardas la posición de inicio en alguna parte de tu programa, podrías crear una sección nueva pero a menudo los AVs lo detectan

Para terminar le cambias el icono al programa usando las funciones BeginUpdateResource y UpdateResource.
También podrías cifrar el ejecutable que ocultas para que sea menos alevoso. Luego pongo un ejemplo de esto último.
Cabe destacar que es mucho más divertido hacer todo lo anterior pero leyendo directamente el ejecutable

Saludos.