obtener direccion virtual correcta

Iniciado por beguiner, 13 Enero 2011, 11:29 AM

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

beguiner

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

Citar0360DEA5   9A D4774F3E 4000 CALL FAR 0040:3E4F77D4    ; Far call


Garfield07

Esa es la direccion, no se ve mucha vuelta de hoja :P...
Desensambla y listo. No se entiende mucho...


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

beguiner

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