FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
monitorear un proceso para saber si ha sido "alterado"
Saludos a todos...necesito monitorear a otro programa en ejecución y saber cuando sea alterado por otro, por ejemplo cuando le inyecten una dll, he probado capturando varios de los mensajes del SO y aunque se puede hacer algo no consigo hacer lo que realmente quiero...si alguien ha trabajado algo de esto espero atentamente su ayuda...muy interesantes los temas de inyección de dlls y procesos....los voy a estudiar detenidamente para ver si saco algo de allí....
gracias.... |
#2
|
||||
|
||||
Detectar a las bravas si un proceso en ejecución e inyectado por otro no es tarea sencilla. Las inyecciones más habituales obligan al proceso anfitrión cargar una dll. El problema no es saber si cargó una dll, sino si esa carga no estaba concebida originalmente. Este tipo de inyección ejecuta en el proceso anfitrión la API LoadLibrary, que a su vez termina llamando a LdrLoadDll pasandole el parámetro de la ruta de la dll a inyectar. Si lo que quieres es proteger una aplicación propia, puedes hacerte a ti mismo un Hook a la API LoadLibrary, o mejor aún, a LdrLoadDll para conocer que dll va a ser cargada. Deberás contrastarla con una lista de dll legales para permitir o no la carga. Esa lista de dll será las que tu aplicación debe cargar para su normal funcionamiento.
Sin conocimiento de los procesos de inyección y Hook a la API, poco vas a poder desarrollar, por lo que lo primero es adentrarte en esos temas. Saludos. |
#3
|
||||
|
||||
Una forma de detectar el cambios es correrle un HASH previo y comparar con el guardado.
__________________
El malabarista. |
#4
|
|||
|
|||
gracias por responder en tan breve tiempo...
he probado la variante le un hook, lo he hecho a nivel de sistema y me informa de algunos mensajes que son enviados desde y hacia el programa que estoy monitoreando, demasiada información y nada realmente significativo....ya me he estudiado e implementado los procesos de inyección de dll, realmente interesantes pero no creo que se pueda sacar nada para hacer lo que necesito.... me gustaría saber más de la variante del HASH ... si no te es mucho problema me gustaría tener una explicación de su funcionamiento o un demo de cómo se hace y yo me ocupo de sacar lo que pueda.... gracias a ambos y saludos... |
#5
|
|||
|
|||
pd. al programa que voy a monitorear puede que se le inyecte una dll...pero no tengo forma de saber la lista de las posibles dlls a inyectarle...es por eso que estoy tratando de saber de cualquier alteración....eso debería incluir la inyección de cualquier librería....
|
#6
|
|||
|
|||
pd. otra vez.... disculpenme, es la primera vez que pongo un hilo y realmente no quisiera "meter la pata"...
el programa a monitorear no es mio, es un juego, de hecho es para monitorear que varios jugadores no "alteren" diferentes juegos mientras juegan en red...en eso estoy...y estoy estancadito en ese enorme detallito... así que será bienvenida toda la ayuda que me puedan dar en este punto... |
#7
|
||||
|
||||
El problema del Hash es que el proceso se está ejecutando y se pretende ver alteraciones en un proceso ya cargado por el S.O. Además, el proceso puede cargar dinámicamente dlls o incluso abrir otros ejecutables.
El típico hook de sistema Windows conseguido con SetWindowsHookEx no sirve. Hay que interceptar las API usadas para inyección y, tratándose de porteger un juego, habrá que inyectarlo previamente al atacante, con el fin de desplegar la protección. En cualquier caso hay que analizar primero como es el ataque, si la máquina es nuestra o del jugador, si es a nivel de usuario o Kernel, que herramientas usa, si estamos en win32 o 64... Para cada estrategia de ataque puedes diseñar una defensa pero para cada defensa puede haber otra modalidad de ataque. Lo ideal es que los jugadores usen tus PCs en los que no permiras injerencias. Saludos. Última edición por escafandra fecha: 22-11-2017 a las 07:49:00. |
#8
|
|||
|
|||
o sea que el hash no es más que la función hash que conozco y no sirve...lo que sugieres es que haga una dll con todo lo necesario para monitorear y la inyecte al juego en tiempo de ejecución, como un hook pero cargado en el propio juego y hacer que él mismo detecte cuando ha sido "alterado"...parece viable...las pcs no son mias, son de los jugadores, pero una de las reglas para jugar es que carguen todos el programa de monitoreo, de lo contrario son expulsados del servidor...
vale...voy a ponerme en función de tu sugerencia... saludos y muchas gracias |
#9
|
||||
|
||||
Básicamente, esa es la idea.
Saludos. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Usar TServerSocket y TClientSocket para enviar "streams" más o menos "grandes" | dec | Internet | 9 | 04-08-2015 16:11:50 |
Como Evitar que la Pantalla se "blanquee" durante un proceso | oscarac | Varios | 9 | 21-07-2011 22:14:29 |
Error "Invalid Parameter" usando Tquery cuando proceso una consulta grande | CharlesWar | SQL | 5 | 18-06-2008 20:27:56 |
ayuda ejecutando un proceso como "SYSTEM" y haciendo que no se pueda terminar | lostprophets | Varios | 2 | 05-02-2008 02:28:50 |
ayuda "Detectando un proceso y ejecutando otro" | lostprophets | Varios | 1 | 29-01-2008 23:54:03 |
|