Ver Mensaje Individual
  #12  
Antiguo 19-06-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 14
aguml Va por buen camino
Lo he probado creando un nuevo proyecto y en este he codificado de forma que cree otro proceso y le inyecte la dll y funciona correctamente. Ciertamente es porque si estoy depurando al proceso no sirve el hook.
Amigo no me entendiste. Mi aplicacion es un depurador el cual depurará a otras aplicaciones y a la aplicacion que depure le debe inyectar la dll para hookear ciertas apis y así ocultar al depurador de estas. Esa es la idea.
Si no estoy depurando a la aplicacion no tiene sentido hacer los hooks ya que no detectará ningun depurador por lo tanto tiene que ser a la aplicacion que esté depurando. ¿me entiendes?
Las pruebas las estoy haciendo con un binario que he creado y al que le he añadido varias protecciones como IsDebuggerPresent, DebugPort, NtSetInformationThread, NtQueryInformationProcess, ... vamos todas las del PEB mas algunas con apis. Las del PEB estan todas solucionadas pero las de esas API's necesito hookearlas para evitarlas ya que si, por ejemplo, NtQueryInformationProcess es llamada con el parametro InformationClass con el valor 7 le está pidiendo que devuelva el puerto libre para depurar a la aplicacion y si ya la estoy depurando pues devuelve -1. Para evitarlo basta con comprobar, cuando llama a la api, si vale 7 y si es así devuelvo lo que me interesa a mi y no dejo que se ejecute la api. Esa es la idea. Lo que estoy viendo en la otra web lo tengo que compilar y verlo mas detenidamente a ver que hace y como lo hace para entenderlo porque no me entero ni con los comentarios T_T

Última edición por aguml fecha: 19-06-2014 a las 21:29:19.
Responder Con Cita