Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: beguiner en 13 Enero 2011, 11:29 am



Título: obtener direccion virtual correcta
Publicado por: beguiner en 13 Enero 2011, 11:29 am
hola miren tengo una duda no se calcular la direccion de la funcion a la que se llama, en el depurador muestra ese numero hexadecimal ( 3E4F77D4 ) o mejor dicho segmento y offset (0040:3E4F77D4) el tema es lo que yo necesito es la direccion real de la funcion adonde se hace el call, como la obtengo ? antes sabia pero ahora no lo recuerdo, habia que restar el offset menos la base mas no se que mas, si me ayudan es mejor amigos gracias

Citar
0360DEA5   9A D4774F3E 4000 CALL FAR 0040:3E4F77D4    ; Far call



Título: Re: obtener direccion virtual correcta
Publicado por: Garfield07 en 15 Enero 2011, 13:21 pm
Esa es la direccion, no se ve mucha vuelta de hoja :P...
Desensambla y listo. No se entiende mucho...


Título: Re: obtener direccion virtual correcta
Publicado por: beguiner en 20 Enero 2011, 12:53 pm
si me puse a leer algunas cosas antes

http://foro.elhacker.net/asm/asm_calcular_direccion_de_call-t254631.0.html;msg1232570

http://support.microsoft.com/kb/80381/es

http://es.wikipedia.org/wiki/Modos_de_direccionamiento#Tipos_de_Direccionamiento

http://www.gsi.dit.upm.es/~gfer/ffoo/ejercicios/PbInstr.html

Citar
E8 cw CALL rel16 Call near, relative, displacement relative to next instruction
        E8 cd CALL rel32 Call near, relative, displacement relative to next instruction
        FF /2 CALL r/m16 Call near, absolute indirect, address given in r/m16
        FF /2 CALL r/m32 Call near, absolute indirect, address given in r/m32
        9A cd CALL ptr16:16 Call far, absolute, address given in operand

        9A cp CALL ptr16:32 Call far, absolute, address given in operand
        FF /3 CALL m16:16 Call far, absolute indirect, address given in m16:16
        FF /3 CALL m16:32 Call far, absolute indirect, address given in m16:32