Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   monitorear un proceso para saber si ha sido "alterado" (https://www.clubdelphi.com/foros/showthread.php?t=92525)

reyss 20-11-2017 05:54:42

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....

escafandra 21-11-2017 21:47:42

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.

mamcx 22-11-2017 03:38:19

Una forma de detectar el cambios es correrle un HASH previo y comparar con el guardado.

reyss 22-11-2017 06:22:56

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...

reyss 22-11-2017 06:26:30

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....

reyss 22-11-2017 06:50:17

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...

escafandra 22-11-2017 07:44:52

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.

reyss 23-11-2017 06:02:26

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

escafandra 23-11-2017 07:02:40

Básicamente, esa es la idea.

Saludos.


La franja horaria es GMT +2. Ahora son las 13:30:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi