HACK HiSPANO
Volver Atras   HACK HiSPANO > SEGURIDAD > INGENIERIA INVERSA
Actualizar esta página Problemilla con Olly

Respuesta
 
LinkBack Herramientas Modos de Vista
  (#1) Antiguo
Iniciado
 
Posts: 9
Fecha de Ingreso: Sep 2009
Problemilla con Olly - 29-03-2012, 15:05


Estoy estudiando un programa el cual tiene una libreria y sobre ella estoy trabajando. El problema que tengo es saber como grabar una direccion que es dinamica. Por ejemplo, lo que quiero modificar es tal como esto:
092B447C mov eax, LinRot5.092CBC74 (direccion) que no es lo mismo que
092B447C mov eax, 092CBC74 (valor).
Esta direccion cuando vuelva a arrancar el programa no sera la misma pero Olly me lo ha grabado como valor y no como direccion, entonces me gustaria saber como he de escribirlo o grabarlo. Se que si estuviese bien, tanto en el desamblado como en el dump apareceria subrayado, masked fixups creo que se llama.
gracias y un saludo.
Responder con Cita
  (#2) Antiguo
Avanzado
 
Posts: 374
Fecha de Ingreso: Oct 2010
30-03-2012, 14:25


Por si te sirve de ayuda, la sintaxis para indicar en una instrucion MOV una dirrecion de memoria es esta MOV [MIDIRECCION] asi no se tomara como un valor.


Bendo mi cuelpo, xicaz interezadaz mnanden priBado, no ravoz ni zorpesas.
Responder con Cita
  (#3) Antiguo
Iniciado
 
Posts: 9
Fecha de Ingreso: Sep 2009
31-03-2012, 00:11


No te entiendo muy bien, segun el ejemplo anterior lo que necesito es saber escribir
092B447C mov eax, LinRot5.092CBC74 y no
092B447C mov eax, [092CBC74] porque como todos sabemos no es lo mismo.
Responder con Cita
  (#4) Antiguo
Avanzado
 
Posts: 374
Fecha de Ingreso: Oct 2010
31-03-2012, 01:42


Lo q te estoy diciendo es que si quieres tomar el valor que se encuentra en la direccion 092CBC74 se suele escribir entre [], espero no tener que entrar en un debate enterno.


Bendo mi cuelpo, xicaz interezadaz mnanden priBado, no ravoz ni zorpesas.
Responder con Cita
  (#5) Antiguo
Moderador Global
 
Posts: 1,558
Fecha de Ingreso: Jul 2005
Localización: 1, 11, 21, 1211...
31-03-2012, 02:43


Si lo que quieres es obtener la dirección de memoria de un objeto (por ejemplo una función o un procedimiento) que se encuentra dentro de una librería dinámica, lo que debes es observar en qué punto se llama a GetModuleHandle() y GetProcAddress(). Esta última recibe el valor devuelto por la primera, y devuelve la dirección de memoria del objeto, que se llama en el código.

Para localizarlo, deberás realizar una traza al código hasta dar con lo que buscas. Una vez localizado, si necesitas "exportar" esa dirección hacia otro sitio, habrá que insertar una instrucción del tipo PUSH EAX (pues en EAX es donde probablemente esté el valor devuelto por la función GetProcAddress), y posteriormente recuperarla en la sección del código con un POP EAX, o con una instrucción MOV EAX, [EBP-x], quedando finalmente en EAX la dirección cargada que buscas, lista para usar en donde desees.

Un saludo.


El optimista tiene ideas, el pesimista... excusas

Responder con Cita
  (#6) Antiguo
Iniciado
 
Posts: 9
Fecha de Ingreso: Sep 2009
02-04-2012, 21:24


Os pongo una lineas del programa original para ver si así me explico mejor.
093F4473 . 6A 15 PUSH 15
093F4475 . 8D8D E0FEFFFF LEA ECX,DWORD PTR SS:[EBP-120]
093F447B . 51 PUSH ECX
093F447C . 68 74BC4009 PUSH LinRot5.0940BC74
093F4481 . FF15 3C943F09 CALL DWORD PTR DS:[<&MSVCR80.strncmp>]
093F4487 83C4 0C ADD ESP,0C
093F448A 85C0 TEST EAX,EAX
imaginemos que yo quiero copiar el push que esta antes de la funcion strncmp, quedaria
093F4487 68 74BC4009 PUSH LinRot5.0940BC74
ahora grabo y reinicio el programa quedando de la siguiente forma
09284475 . 8D8D E0FEFFFF LEA ECX,DWORD PTR SS:[EBP-120]
0928447B . 51 PUSH ECX
0928447C . 68 74BC2909 PUSH LinRot5.0929BC74
09284481 . FF15 3C942809 CALL DWORD PTR DS:[<&MSVCR80.strncmp>]
09284487 68 74BC4009 PUSH 940BC74
y vemos que el ultimo push no ha cogido la direccion que puse antes. Esta version de Olly es 1.09 y aunque el v2.01 me deja escribir Push Offset 0929BC74 el resultado es el mismo.
un saludo.
Responder con Cita
  (#7) Antiguo
Iniciado
 
Posts: 31
Fecha de Ingreso: Jul 2008
12-04-2012, 12:50


Hola, elios48.

¿Sería posible saber qué programa es el que estás estudiando?

Gracias, y un saludo.
Responder con Cita
Respuesta

Bookmarks

Herramientas
Modos de Vista

Normas
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies son On
[IMG] código esta On
Código HTML esta Off
Trackbacks are On
Pingbacks are On
Refbacks are On




Alojado en Hacheté Diseños Web

Powered by vB 3
Copyright © 1999-2013 HACK HiSPANO