Duda para impedir inyeccion en proceso ?

Iniciado por TrashAmbishion, 4 Junio 2016, 23:07 PM

0 Miembros y 1 Visitante están viendo este tema.

TrashAmbishion

#10
Para entonces terminar con esa opción y aclarar.

Yo se que siempre se podra inyectar no planeo que sea imposible pero si hacerselo mas complicado, ahora mismo yo entro en un sitio donde sacaron un inyector para el bf3 que funciona en todos los windows y cojo un software digamos el Armadillo le ofusco hasta los huevos al EXE del juego, y trato de hacer una inyeccion funciona de todas maneras o ya hay que ponerse a ver en que direccion esta el punto de entrada bla bla bla..

Pd:Alguien tiene algun codigo que me permita mostrar las DLL cargadas de un proceso en vb.Net tengo varios en C++ y estoy viendo como convertirlo.

Salu2 y gracias de antemano

Karman

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

MCKSys Argentina

Cita de: TrashAmbishion en  9 Junio 2016, 21:10 PM
Para entonces terminar con esa opción y aclarar.

Yo se que siempre se podra inyectar no planeo que sea imposible pero si hacerselo mas complicado, ahora mismo yo entro en un sitio donde sacaron un inyector para el bf3 que funciona en todos los windows y cojo un software digamos el Armadillo le ofusco hasta los huevos al EXE del juego, y trato de hacer una inyeccion funciona de todas maneras o ya hay que ponerse a ver en que direccion esta el punto de entrada bla bla bla..

En vez de usar Armadillo, usa VMProtect y trata de virtualizar lo que puedas. La inyección debe modificar partes del ejecutable y, si está virtualizado, se romperá el código cuando la DLL lo parchee.

También puedes hacer un thread "protector" que recorra los módulos cargados y descargue (o cierre) el programa cuando detecte una DLL sospechosa.

Cita de: TrashAmbishion en  9 Junio 2016, 21:10 PM
Pd:Alguien tiene algun codigo que me permita mostrar las DLL cargadas de un proceso en vb.Net tengo varios en C++ y estoy viendo como convertirlo.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682631(v=vs.85).aspx

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


TrashAmbishion

#13
Hola,

Bueno básicamente lo que tengo mas o menos realizado es verificar las DLL que el utiliza en un sistema con w7, w8 y w10, crear como una estructura y comparar, noc estoy buscando otras alternativas, con el virtualprotect no puedo resolver porque parece que el programa verifica el tamaño del .EXE y no abre.

Salu2




Algo que me tenía con duda el juego del bf3 siempre se va a llamar desde mi aplicación. Esto lo puedo considerar como una ventaja puedo emplear alguna tecnica tan solo provisoria no pretendo hacerlo imposible, como habia dicho molestar al cheater.

Tenia pensando hacer el proceso crítico para si alguien trata de inyectar y quizas crashea el proceso en el intento al ser crítico le metería el pantallazo azul, pero bueno esto lo he realizado en mi aplicación nunca en una externa nose si será el mismo mecanismo.

Aun sigo leyendo el tema pero voy a preguntar si siempre se hace una inyeccion de una DLL esto no saltaria al estar vigilando los modulos cargados por el juego, hacer lo que decía MCKSys Argentina.

Salu2 y gracias cualquier opinión.




Hola de nuevo,

Leyendo encontre esta respuesta a una pregunta similar a la mia voy a citarlo y pongo el sitio donde lo encontré:

http://reverseengineering.stackexchange.com/questions/2262/how-can-dll-injection-be-detected

Citar


Yes, it is possible. There are a couple of generic approaches you can take for detecting injected processes (not just dlls). The first is to enumerate DLLs that are injected by the OS via registry key. The two known key/value are AppCertDLL & AppInitDLLs. The second is to search for all memory that is marked as RWX and then parse out the memory for clues of an executable file or injected code. The third is to search for private memory that contains an executable or injected code. Another approach is to search for inline hooks of APIs. Parse out the handler address and then query the memory address of the handler. The handler will likely be an injected process.

I have been doing research in this area for the past couple of weeks. My main focus is detecting injected malware. Here is a tool called injdmp that I released this week for detecting injected processes.


Alguien conoce la herramienta saben de alguna mas moderna o algun proyecto.

Que podria leer para tratar de implementar algo quizas no tan rebuscado mas bien superficial programando en Vb.Net esto es aparte de los modulos y los hilos que tiene corriendo el proceso.

Salu2

MOD EDIT: No hacer triple post.