Hay varias formas de complicar la inyección de una dll en un proceso, una es por kernel bloqueando ciertas funciones pero solo funciona en 32 bits, la otra es tocar algunas de las funciones del sistema que se ejecutan cuando la dll se inyecta (ldrloaddll, threadstartcaller [también llamada basethreadstart, pero no se si tiene un nombre oficial porque es indocumentada], y habían un par más que no recuerdo son llamadas por el kernel luego de inyectar) aunque se podría de todas formas inyectar manualmente donde ldrloadll no funcionaría, pero bue, es cuestión de probar...
S2
S2