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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  OllyDBG Registros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: OllyDBG Registros  (Leído 3,773 veces)
teje

Desconectado Desconectado

Mensajes: 42


Ver Perfil
OllyDBG Registros
« en: 20 Diciembre 2012, 19:01 pm »

Hola, estoy estudiando ingeniería inversa con OllyDBG y me hago una pregunta. ¿Como se diferencia en los registros una dirección de memoria de un valor?
Un saludo!
En línea

apuromafo CLS


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: OllyDBG Registros
« Respuesta #1 en: 20 Diciembre 2012, 19:18 pm »

no se que te estas leyendo, pero si fueras mas explicito seria mejor
pero si es para lo que creo, terminaras confirmando recien cuando entiendas la estructura de un exe o estructura cabezera MZ o PE header

te hare un alcance, depende del uso y del tamaño, y para que arquitectura buscas
http://es.scribd.com/doc/45774301/Arquitectura-x86-y-x64

http://es.wikipedia.org/wiki/Intel_8086_y_8088


segun esta mini idea que los registros pueden servir segun su arquitectura para
1) bandera, de acumuladores y otros

pero hare un ejemplo simple

mov eax,1  (mueve a eax, registro de 32 bytes,  RAX, se usa solo para acumular, mover contar etc)

cmp eax,1  (compara si el valor es 1, pero donde sabe el programa que es o no?), para esto usa temas de banderas, pero este comando no usara la bandera, sino el proximo
je lugar (comparando la bandera z, si es 0 o 1, este determinara si seguir o no al lugar)
cmp ah, 1  (lo mismo)
jne lugar

hay diferentes estructuras, digamos por ejemplo que hay 3 sistemas operativos principales
1) linux  (formato cabezera elf)
2) windows x86 (formato PE), windows x64 , archivos hechos en estructura .net
3)mac OSX o similares.

digamos que para esos casos el primer valor cambia segun la arquitectura, el tamaño permisos y otros, pero el principio es el mismo

sirven conforme puedan ser usados


digamos que tienes un programa que analiza de 2 formas(estatico y dinamico)

cuando abres un depurador tipo, lo mas probable es que comienza de forma estatica, pero, hay depuradores dinamicos que permiten dejar interrupciones o detenerce en cierto punto, a modo de obtener en ese lugar especifico (que colocamos el punto de interrepcion o breackpoint)  , todo dependera obviamente de que tema podemos estar hablando


un ejemplo cualquiera

abres ollydbg, estas en el entrypoint(donde estas ahora)..ahi comenzaste, ves los registros de eax, ebx, ecx y otros,   pero lo primero que puede estar pueden ser

1) saltos
2) push  lugar , que llevara a guardar registros en stack , o preparar el espacio para ejecutar las instrucciones


cuando los programas estan mal hechos o poseen bug, es muchas veces porque otorgan espacios reducidos o bien una instruccion pasa a llevar a otra , o bien los permisos de ciertas secciones estan mal dadas

principalmente ese es el uso basico de un depurador

ahora bien, te sugiero seguir leyendo, porque  digamos que  las diferencias(tu pregunta), las darà principalmente los comandos que vaas viendo


saludos Apuromafo
En línea

Apuromafo
teje

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: OllyDBG Registros
« Respuesta #2 en: 20 Diciembre 2012, 19:32 pm »

Estoy leyendo la INTRODUCCIÓN AL CRACKING CON OLLYDBG DESDE CERO de Ricardo Narvaja.
Bien, aclarando de primeras un valor de un registro no se puede saber si corresponde a una dirección de memoria o si es un valor de una dirección de memoria. Hay que leer el desensamblado para verlo. ¿es así?
Un saludo y gracias.
En línea

apuromafo CLS


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: OllyDBG Registros
« Respuesta #3 en: 20 Diciembre 2012, 19:36 pm »

pues
digamos que ollydbg tiene una estructura
te sugiero leer con detalle esto y vuelvas a ver el mensaje

http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html


digamos que miras a tu derecha, estaran los registros,   si haces follow in dump, veras lo que esta en esa memoria..(bytes) direcciones

por ejemplo si dice
mov eax, 1,   no existe direccion 1, por ende es usado solo contador o algo

diferente es el caso que diga

mov eax, ebx,  movera a eax el valor de ebx,  digamos que vale 401000, si coloco follow in dump, en la parte inferior yo vere el valor que contiene 401000

ademas existen opciones de go to..y asi suma y sigue

saludos Apuromafo
En línea

Apuromafo
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: OllyDBG Registros
« Respuesta #4 en: 20 Diciembre 2012, 19:58 pm »

No se puede diferenciar tal cosas así como puede ser una direccion de memoria tambíen puede ser un valor.
Si tenemos: 76480000h este valor puede ser tanto como la direccion de kernel32.dll como también parte de una clave de encriptacion, dos caracteres, etc. Obviamente hay que usar un poco de lógica en esos casos.

En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: OllyDBG Registros
« Respuesta #5 en: 20 Diciembre 2012, 20:08 pm »

Estoy leyendo la INTRODUCCIÓN AL CRACKING CON OLLYDBG DESDE CERO de Ricardo Narvaja.
Bien, aclarando de primeras un valor de un registro no se puede saber si corresponde a una dirección de memoria o si es un valor de una dirección de memoria. Hay que leer el desensamblado para verlo. ¿es así?
Un saludo y gracias.

En realidad depende de si el codigo intenta acceder o escribir en la direccion dada.
Lo que puedes consultar es el Memory Map. Ahi veras las regiones de memoria mapeadas.

En el caso en que necesites saber si una direccion de memoria esta mapeada desde codigo, (osea, si "existe") puedes usar la funcion IsBadReadPtr. Esta funcion te indica si puedes LEER de esa direccion (por ende, esta mapeada).

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366713(v=vs.85).aspx

Saludos!
En línea

MCKSys Argentina

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

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: OllyDBG Registros
« Respuesta #6 en: 20 Diciembre 2012, 20:52 pm »

En realidad depende de si el codigo intenta acceder o escribir en la direccion dada.
Lo que puedes consultar es el Memory Map. Ahi veras las regiones de memoria mapeadas.

En el caso en que necesites saber si una direccion de memoria esta mapeada desde codigo, (osea, si "existe") puedes usar la funcion IsBadReadPtr. Esta funcion te indica si puedes LEER de esa direccion (por ende, esta mapeada).

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366713(v=vs.85).aspx

Saludos!
No siempre es bueno usar IsBadReadPtr/IsBadWritePtr, Aquí del porque:
http://blogs.msdn.com/b/larryosterman/archive/2004/05/18/134471.aspx

Y después de asegurarte de ese problema entonces recomiendo usar SEH en lugar de esas funciones.

En línea

apuromafo CLS


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: OllyDBG Registros
« Respuesta #7 en: 20 Diciembre 2012, 23:18 pm »

esta iniciando, simplemente esta conociendo si lo que ve es un registro o algo mas

creo que es como se dice, hay varios registros, pero hay que saber interpretarlos con el tiempo

saludos Apuromafo
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
OllyDbg
Ingeniería Inversa
rPcW0rM 2 11,519 Último mensaje 16 Agosto 2003, 10:07 am
por byebye
OllyDBG
Ingeniería Inversa
Canelis 3 2,891 Último mensaje 2 Agosto 2005, 04:33 am
por 4rS3NI(
[Registros] existe algún registro para Outlook en los registros de windows?
Windows
moikano→@ 5 6,876 Último mensaje 14 Febrero 2011, 14:56 pm
por dantemc
Monitorizar registros en Ollydbg
Ingeniería Inversa
Tinkipinki 3 2,847 Último mensaje 3 Agosto 2011, 11:50 am
por Tinkipinki
¿Como ver el valor de los registros CS, DS, y ES en OllyDbg???
Ingeniería Inversa
harry_the_blogger 2 2,214 Último mensaje 22 Agosto 2014, 17:32 pm
por harry_the_blogger
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines