[ASM] Calcular direccion de CALL

Iniciado por Lambda, 12 Mayo 2009, 00:45 AM

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

bizco

te pongo un ejemplo simple para cambiar el call en tu propio ejecutable para que te de una idea mas que nada.


     push esi
     lea esi,[direccion]
     ElCall:
     lodsb
     cmp eax,0E8h
     je Cambiar
     jmp ElCall
     Cambiar:
     mov ecx,esi
     mov eax,Segunda
     sub eax,ecx
     mov [esi],eax
     sub dword [esi],4
     pop esi

     push 0
     call Primera

proc Primera
     push 0
     call [ExitProcess]
endp

proc Segunda
     push 0
     push msg
     push msg
     push 0
     call [MessageBox]
     push 0
     call [ExitProcess]
endp                 


siendo direccion direccion equ $+0Eh. si lo compilas veras los cambios y que compilando "call primera" se ejecuta "segunda".

Lambda

Gracias a todos, por fin lo pude hacer xD, basicamente es restarle a la direccion de la funcion a llamar el offset actual + 5