Parámetros de funciones en un DLL.

Iniciado por APOKLIPTICO, 29 Octubre 2010, 21:23 PM

0 Miembros y 1 Visitante están viendo este tema.

APOKLIPTICO

Hola gente, como va todo?
Estoy tratando de linkear un programa con un DLL utilizando llamadas GetProcAddress y todo eso. Podría linkearlo con el "lib" pero pensé que sería mas divertido de esta manera...

Bueno, mi problema, es el tema de los parámetros, tengo todos los exports de la DLL, y se que pasa un solo parámetro, hay alguna manera de saber el tipo de datos y si es un puntero (o un puntero de un puntero) de dicho parámetro??
Otra cosa, importa si el valor devuelto se ignora? Es decir, tampoco se el valor devuelto, sospecho que es int, pero para este caso no me interesa, el tema es que quería saber si me equivoco en el tipo de datos del valor devuelto, me puede causar un error en la llamada a la función. Por ejemplo si cuando la declaro, pongo void como valor devuelto.

Bueno, muchas gracias!
Un abrazo
APOKLIPTICO

PD: También tengo un programa que utiliza esta DLL, se puede leer los parámetros que le pasa?.
PD2: Que programas me convendría utilizar?? Tengo shadow Ollydbg y PE Explorer.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

MCKSys Argentina

Probaste con IDA? Seguro te saca los parametros y analizando el ASM podes determinar que tipo de datos es...

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


APOKLIPTICO

La cantidad de parámetros ya lo saqué con el ollydbg, es uno solo, pero como puedo determinarlo usando ASM?
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

bizco

con el olly pones un bp en la funcion y miras que te pasa como parametro, si es un puntero, si es el valor etc. si es un puntero y fuese a alguna estructura que desconoces tendrias que mediante el resto de codigo y pruebas ir deduciendo los miembros de esta.

APOKLIPTICO

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

Иōҳ

bajate el dependecywalker.

y listo!

Salu2 Nox!
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

APOKLIPTICO

El dependency walker no me da parámetros, o si?
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

Иōҳ



abri una dll!

aunq como dice ctlon, usa el ollydbg para mayor referencia, si es puntero a una structura pues el debugger es el indicado

Salu2! Nox!
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

APOKLIPTICO

Aparentemente solo funciona para los dll en c++. Las de C no te muestra los parametros...
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

bizco

sube la dll que miremos y podamos ayudarte si aun no lo tienes.