elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Re posicionar un call near?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Re posicionar un call near?  (Leído 5,513 veces)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re posicionar un call near?
« en: 13 Septiembre 2011, 19:31 pm »

a través de qué fórmula puedo saber que valores HEX debe tener un call en el dump (después de E8) me explico

si copio y pego un call en otra dirección no funciona ya que apunta a otra dirección y no a la que apuntaba estando en la posición original, no sé si se entiende

Saludos
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: Re posicionar un call near?
« Respuesta #1 en: 13 Septiembre 2011, 21:40 pm »

Claro, tienes que poner el desplazamiento que hay desde el call hasta el procedimiento que quieres llamar, date cuenta que cuando vez los opcdes de un CALL, acaso vez la dirección?, que crees que es... has la prueba sea negativo o positivo ese desplazamiento, sumalo y veras a donde te lleva.

Nox
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Re posicionar un call near?
« Respuesta #2 en: 13 Septiembre 2011, 22:01 pm »

Para evitar todos los calculos, transforma el CALL en un PUSH+RET.

Por Ej.:

CALL 123456

es igual que

PUSH 123456
RET

El unico problema es que necesitas 1 bytes mas...  :P
En línea

MCKSys Argentina

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

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: Re posicionar un call near?
« Respuesta #3 en: 13 Septiembre 2011, 22:56 pm »

El unico problema es que necesitas 1 bytes mas...  :P

Eso, tienes que tener cuidado de que no pises demás bytes, que si no je..

Nox
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Re posicionar un call near?
« Respuesta #4 en: 14 Septiembre 2011, 01:21 am »

Muchas gracias de todas formas el método de MCKSys Argentina no me sirve en esta ocasión pero si lo guardaré para otra circunstancia  que que lo encontré muy llamativo

Иōҳ, no logro dar con el call :S te comentó:

Está es la posición correcta en donde hay dos call que quiero copiar:
Citar
00890E97    C1E8 10         SHR EAX,10
00890E9A    A3 28E64500     MOV DWORD PTR DS:[45E628],EAX
00890E9F    E8 FC84B9FF     CALL UnPackMe.004293A0
00890EA4    85C0            TEST EAX,EAX
00890EA6    75 0A           JNZ SHORT 00890EB2
00890EA8    6A 1C           PUSH 1C
00890EAA    E8 B164B9FF     CALL UnPackMe.00427360
si en la primera call coloco follow in dump me muestra lo siguiente:
Citar
00890E9F  E8 FC 84 B9 FF


Si copio todo en otra ruta me aparece lo siguiente:

Citar
0042923E    A3 28E64500     MOV DWORD PTR DS:[45E628],EAX
00429243    E8 FC84B9FF     CALL FFFC1744
00429248    85C0            TEST EAX,EAX
0042924A    75 0A           JNZ SHORT UnPackMe.00429256
0042924C    6A 1C           PUSH 1C
0042924E    E8 B164B9FF    CALL FFFBF704

No logro entender muy bien





En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Re posicionar un call near?
« Respuesta #5 en: 14 Septiembre 2011, 01:22 am »

Si me explicaran la fórmula o el método para poder saber el valor que debe tener el call se los agradecería,ya que quiero aplicarlo a un script por que son muchas call a modificar, muchas gracias
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Re posicionar un call near?
« Respuesta #6 en: 14 Septiembre 2011, 02:55 am »

1) Obtienes la direccion donde esta el CALL (890E9F)
2) Obtienes los bytes del CALL (FC84B9FF)
3) Inviertes los bytes del CALL (FFB984FC). Asi obtienes un nuemro que puede ser positivo o negativo.
4) Le sumas a la direccion de 1) los bytes invertidos.

Listo. Ya tienes la VA de la funcion...

Saludos!

Ah! Sumale 5 (los bytes que ocupa el CALL)  :P
« Última modificación: 14 Septiembre 2011, 02:57 am por MCKSys Argentina » En línea

MCKSys Argentina

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

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Re posicionar un call near?
« Respuesta #7 en: 14 Septiembre 2011, 04:19 am »

Me ha funcionado de maravilla. una cosa más me podrías explicar un poco más detallada la fórmula? (Quiero saber que es lo que hago)


Citar
1) Obtienes la direccion donde esta el CALL (890E9F)
2) Obtienes los bytes del CALL (FC84B9FF)
3) Inviertes los bytes del CALL (FFB984FC). Asi obtienes un nuemro que puede ser positivo o negativo.
4) Le sumas a la direccion de 1) los bytes invertidos.

Listo. Ya tienes la VA de la funcion...

Saludos!

Ah! Sumale 5 (los bytes que ocupa el CALL)


Muchas gracias
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: Re posicionar un call near?
« Respuesta #8 en: 14 Septiembre 2011, 06:47 am »

1) Obtienes la direccion donde esta el CALL (890E9F)
2) Obtienes los bytes del CALL (FC84B9FF)
3) Inviertes los bytes del CALL (FFB984FC). Asi obtienes un nuemro que puede ser positivo o negativo.
4) Le sumas a la direccion de 1) los bytes invertidos.


Muy bueno  ;-), yo lo hago de otra forma (creo, je... tengo que revisar el code que tengo por ahí para acordarme)  :laugh:
EDITO:
Ve, no vi esto, ya lo iba acotar.

Ah! Sumale 5 (los bytes que ocupa el CALL)  :P

Esto nunca yo lo supe tan solo me puse a ver como era esto del call y jmp, y a lo ortodoxo saque la forma de hacerlo, y luego me di cuenta de los 5 bytes del call o jmp :B, tan solo es cuestion de ser observador ;).

Pd: en este tiempo no tenía internet, todo lo hacía con lo que sabía y tenía a la mano y que era muy poco :P.

Nox.
« Última modificación: 14 Septiembre 2011, 06:58 am por Иōҳ » En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Re posicionar un call near?
« Respuesta #9 en: 14 Septiembre 2011, 18:29 pm »

Me ha funcionado de maravilla. una cosa más me podrías explicar un poco más detallada la fórmula? (Quiero saber que es lo que hago)

El tema es que los JMPs y los CALLs son relativos a la posicion en la que estan.

Siguiendo tu ejemplo, tienes un CALL:
Código:
00890E9F    E8 FC84B9FF     CALL UnPackMe.004293A0

Como vez Olly te decodifica ya la direccion a la que saltara/llamara el CALL, pero si lo ves a nivel de BYTES, el valor que tiene el opcode de CALL (E8) es FFB984FC. Este valor es la distancia en bytes desde esa posicion (00890E9F) al inicio del CALL en si (4293A0).

Ahora, para calcular efectivamente la direccion, deberas sumarle a la direccion donde esta el CALL, el valor de "distancia" y ademas la cantidad de bytes que ocupa la instruccion CALL...

Eso es todo :P
En línea

MCKSys Argentina

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

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
no quiero posicionar la web
Desarrollo Web
OssoH 3 2,823 Último mensaje 10 Agosto 2010, 06:39 am
por Nakp
Posicionar web
Desarrollo Web
gatomadrid 2 2,822 Último mensaje 16 Septiembre 2010, 16:36 pm
por contacto
Posicionar web
Desarrollo Web
gatomadrid 4 3,531 Último mensaje 27 Marzo 2012, 22:19 pm
por jhonrikard
[AYUDA]Posicionar el cursor en C++
Programación C/C++
0xDani 0 2,838 Último mensaje 23 Mayo 2012, 21:10 pm
por 0xDani
Posicionar en el centro
Desarrollo Web
{/col:/}Kisin{/col/} 0 1,603 Último mensaje 5 Diciembre 2012, 02:33 am
por {/col:/}Kisin{/col/}
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines