Título: Obtener funciones CON PARAMETROS de una .dll Publicado por: nhaalclkiemr en 7 Enero 2008, 19:08 pm Pues bien he estado buscando y weno al final conseguí con el dumpbin.exe y con el link.exe poder obtener el nombre de las funciones de una DLL...lo malo es que no conseguí obtener los parametros que hay que pasarle a esa funcion...
Y weno cuando son funciones documentadas no hay problema porque las miras en internet y listo...pero cuando no son documentadas no consigo obtener la información sobre los parametros que hay que pasarle a esa función... Weno en un sitio hablaban de usar un desemblador...pero la verdad no entendí como dice que se hace: Citar si no tenés la definición de la función (por ejemplo es una funcion que creó alguien indocumentada), depurar el programa con algún desensamblador (puede ser w32dasm ) Supon que la funcion acepta 3 parametros y devuelve uno. Entonces desensamblas el ejecutable que llama a la funcion dentro de la DLL. Buscar una llamada a la funcion (Ej CALL MIDLL!MIFUNCION) Una vez encontrada la llamada a la funcion mirás arriba del código y buscas instrucciones PUSH: EJ push parametro3 push parametro2 push parametro1 CALL MIDLL!MIFUNCION En el registro EAX está el valor de retorno obviamente no va a decir parametro1,parametro2 o parametro3 Puede decir algo como: push esi push edi push FF En este caso al ser registros de 32 bits, lo que se pasa son 2 parametros de 32 bits (o sea 4 bytes cada uno) y el primer parametro es FF (256) o sea un byte. ESI O EDI podrian ser punteros a un string. Para ver de que se trata mejor, te fijarias en que posicion de memoria (aparece en el codigo desensamblado) se llama a la funcion. Entonces usando un debugger (ntsd por ejemplo que viene con XP) te podrias fijar los valores de esi y edi y ver como cambian una vez que la funcion se ejecuta. No hay forma directa y facil de saber que y cuantos parametros se le pasan a una dll mirando solamente el ejecutable de la aplicacion. Por mas que uses el PE explorer o el dump o programas similares, este te va a mostrar la table de importacion/exportacion de funciones, pero no la cantidad de parametros que se le pasan ya que esta info no está (ni tiene por que) estar contenida dentro PE (portable executable). Y weno pues a ver si alguien sabe de algun programa o de algun método mas facil, o en su defecto de como hacer lo que puse arriba explicado mejor ya que wen se usar un poco el OLLY pero yo de ASM nada... Saludos ;) Título: Re: Obtener funciones CON PARAMETROS de una .dll Publicado por: Ferсhu en 7 Enero 2008, 19:14 pm Citar Weno en un sitio hablaban de usar un desemblador...pero la verdad no entendí como dice que se hace: Lo q creo q kisieron decir es q abras con algun debuger como olly vallas hasta el offset de la funcion y veas cuantas cosas saca de la pila (para saber la cantidad) y q hace con ellas (para saber q tipos son). En el texto q citaste es lo mismo pero antes de llamarse a la funcion, pero aveces no tenemos un ejemplo de un archivo q use la funciones. Pero siempre vamos a tener a la funcion. saludos!! |