Hola gente, acudo al foro con una duda..
Estoy haciendo en python un programita, y necesito que vea los procesos del sistema y les haga un checksum :P
Hasta ahora logre ver procesos, matarlos, etc.. el path y name que me dan son las direcciones físicas..
La idea es, por ejemplo que yo tengo un checksum de paint.exe no modificado.. Y en base a eso verificar si concuerda con el paint.exe que acabo de abrir, al que podrian haberle inyectado una dll, por ejemplo..
A grosso modo:
checksumPaint = "123" //checksum obtenido de un proceso paint.exe no modificado
//abro un paint con una dll inyectada
proceso = buscarProceso("paint.exe") //busco el paint.exe
checksumPaintAbierto = proceso.checksum() //que creatividad la mia..
print (checksumPaintAbierto==checksumPaint)
//devuelve false, porque le inyecte una dll..
Básicamente es eso. detectar si le modificaron algo al programa que esta en los procesos...
Gracias..!
[EDITO]
De más esta decir, son procesos de Windows, no me interesa para Unix y demás.
En definitiva, lo que intentas hacer es leer la memoria del proceso para hacer la comprobación sobre eso?
Saludos
Sip, nose si sera posible xD. y Nose si el checksum de la memoria va a cambiar si le inyectan una dll al programa..
Podrías probar con ctypes (http://docs.python.org/library/ctypes)
Aquí (http://stackoverflow.com/questions/1794579/how-can-i-read-the-memory-of-another-process-in-python-in-windows) tienes un ejemplo sobre una consulta similar.
El checksum lo puedes comprobar calculando el MD5 o similar sobre los datos leídos. :P
Saludos
Agradezco las respuestas Novlucker , voy a leer un poco mas..
Alguna otra idea?? Estoy haciendo un anti-cheat.. Gracias!