lunes, 21 de febrero de 2011

Offset finder - Python version

Bah, para no estrañar a nadie son 4 lineas de código en Python las necesarías para lograr hacer lo mismo que el programa del compañero xassiz.

Como se puede esperar no tiene ningún tipo de manejo de errores ni nada, lo que hace el código es tirar de dos funciones de la API de Windows (conocida por e$to$ como SDK), que logran returnar el offset de una función dentro de una libreria.

El programa hace lo siguiente:

Coje un manejador para la libreria:
GetModuleHandleA(libreria)

Y la direción del proceso:

GetProcAddress(manejador, funcion)

Tenemos lo siguiente:
import sys
import ctypes
libreria = ctypes.windll.kernel32.GetModuleHandleA(sys.argv[1])
print sys.argv[2]+" en "+sys.argv[1]+" : "+str(ctypes.windll.kernel32.GetProcAddress(libreria, sys.argv[2]))

Esto ha sido todo, saludos

1 comentarios:

Interesante, no me deja de sorprender que windows es el único OS ( junto con MAC ? ) que tiene una API única, incluso para python!

Publicar un comentario