Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Curso de Cracking - Funcionamiento del OllyDBG

Curso de Cracking - Funcionamiento del OllyDBG

 ****- (36 opiniones)
GNU Free Documentation License Curso gratis de JaMaikito - 21 de Febrero de 2006
Temas Relacionados: Hacking
2. Funcionamiento del OllyDBG
Bueno como había prometido, aquí comenzaremos a investigar el funcionamiento del OllyDBG, para llevar adelante nuestros fines. Como ya había explicado este programa es un desensamblador debugeador, que a mi gusto es de lo mejor por el sencillo interfaz intuitivo que tiene.

Como me imagino que ya habrás bajado el programa, y habrás probado lo que te dije el capítulo anterior, no???? jajaja, si que eres vago. Bueno ha llegado la hora asi que bájate el programa e instálalo de una vez ;). Bueno comenzaremos descargando algún programa, busquen algún crackme en lo posible, para empezar a experimentar. Incluiré ahora un gráfico para utilizarlo para tomar referencias, para explicar lo que estamos viendo.



Como podrán notar, si es que no se han quedado ciegos de pasar mucho tiempo delante de la PC ;) , he remarcado las diferentes areas del programa con distintos colores para poder distinguirlas y de esta manera poder explicar más sencillamente a qué hacen referencia.

ROJO: En este lugar podemos ver la dirección que se le ha asignado a la orden, esto nos servirá para poder orientarnos dentro del programa, y una vez ubicado el de nuestro interés, simplemente anotándolo no tener que repetir todo el proceso una y otra vez.

AZUL: Es el valor hexagesimal. Este es un sistema de numeración en base 16, que utiliza hasta el número 9 luego del cual comienza a utilizar letras hasta completar la escala, para que lo vean más claramente incluiré una tabla de conversión de los primeros valores para que lo vean: DEC-->1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ....... HEX-->1 2 3 4 5 6 7 8 9 A B C D E F 10 .......

VERDE: Aquí observaremos el area donde se hallan las órdenes en lenguaje ASM , como anteriormente he dicho para nuestros fines no será necesario conocerlas todas, aunque si muy útil para entender la rutina que realiza el programa, especialmente cuando nos avoquemos a obtener un serial.

NARANJA: Se verán los registros, para qué nos interesa eso?, a diferencia de otros lenguajes en ASM no se pueden definir variables indefinidas, si no que los valores se transpasan entre las que pueden ver en el gráfico, por lo tanto podremos ver allí el valor que toma, que como me imagino que ya habrán pensado en algún momento será nuestro objetivo el que se halle allí almacenado.
AMARILLO: Podremos ver la "Dump" o basura en castellano, he leído en repetidas ocasiones que es útil personalmente no me ha sido de gran ayuda hasta ahora, pero nunca se sabe por cierto.

Debemos saber que estos programas llaman a ciertas funciones que ya se hallan predefinidas en los módulos, para clarificar esto hagan lo siguiente en el programa que tienen debugeado en el OllyDBG, hagan click con el botón derecho del mouse y si posan sobre al opción VIEW, se desplegarán todos los modulos que se utilizan durante el programa. Para ver con mayor exactitud cuales son las funciones que se llaman (API para decirlo más concretamente), haremos de nuevo click con el botón derecho pero iremos a SEARCH FOR... , y una ves posados allí a NAME (LABEL) IN CURRENT MODULE, además de verlas se nos especificará la dirección la sección y el tipo que es si de importación o de exportación.

Otra opción que nos ocupará será SERCH FOR.... ---> All REFERENCES TEXT STING , que como imagino ya habrán descubierto por su nombre hace que se busquen todas las cadenas de texto existente dentro del módulo.

Si ampliamos la solapa DEBUG veremos varias opciones, a continuación lo que haré será, explicar qué opciones nos ocuparán y sus respectivos atajos para poder trabajar más cómodamente en nuestro ordenador, pudiendo independizarnos relativamente del mouse durante el manejo del programa para hacerlo de forma más agil, si bien al comienzo tomará más tiempo, con el acostumbramiento agilizará mucho el proceso. Estas son:

VIEW--->Breakpoint // DEBUG--->RUN // DEBUG--->Restart // DEBUG--->Step Intro // DEBUG--->Step Over //

Estas serán principalmente las opciones que nos ocuparán, existen otras útiles, pero las veremos más adelante cuando sean necesarias.

BREAKPOINT: Antes que nada explicaré lo que significa esto. Como el nombre lo indica es un punto de ruptura, es decir, cuando apliquemos un breakpoint a alguna parte del programa tendrá como resultado que la ejecución del mismo se detendrá allí. Existen varios tipos de breakpoint, utilizaremos el toogle cuya tecla de atajo en F2 , y lo que hace es poner un punto break fijo, a diferencia de otro caso como podría ser el breakpoint que se ejecuta solo una vez o de memory access, etc. Esta opción concretamente en sí, nos permitirá ver todos los breakpoint utilizados sobre el programa para poder visualizarlos más fácilmente y poder de esta manera manipularlos.

RUN: Como su nombre lo indica esto hará que corra el programa, su tecla de atajo es F9.

Restart: Esta opción limpiará la pantalla y desensamblará el programa de nuevo, su tecla de atajo es Ctrl+F2.

Step Over: Esta opción avanzará paso por paso dentro de las ordenes de ejecución del programa, nos servirá para realizar lo que se llama proceso de traceado o simplemente "tracear". Cuando traceamos lo que estamos haciendo es seguir paso por paso la ejecución del programa pero no simplemente para visualizarlo, si no por ejemplo si el programa realiza una comparación y luego hay un salto lo que hará es según el resultado tomar el salto o no y en caso de tomarlo arrojarnos a la zona del programa hacia donde estaba orientado dicho salto. Su tecla de Atajo es F8.

Step Into: Esta es similar a la anterior con la diferencia de que con esta ingresaremos en las llamadas (CALL), es decir podremos ver el proceso que realiza esta. Por ejemplo en un call se da la generación de una frase, si seguimos con F8 (recordemos, se los acabo de decir ;) , que es para Step Over) , pasaremos al siguiente paso viendo el resultado, sin entrar en la llamada, en cambio con F7 (tecla de atajo de Step Into) , ingresaremos al proceso que se realiza dentro de la llamada. Debemos ser muy cuidadosos cuando utilizamos esta opción al treacear, ya que algunas llamadas nos llevan a otro módulos (recordemos las API) , lo que podría despistar completamente al nuevo usuario.

Conjuntamente con esta herramiento aprovecharé la oportunidad para referirme al W32Dasm. Esta herramienta es a mi entender un desensablador pero tiene la paticularidad que pondrá las cosas más claras para poder realizar una mejor lectura del funcionamiento del programa, ya que dentro del mismo desensamblado se hace la referencia a desde que lugares son llamadas las funciones y por ejemplo en ciertos programas las referencias a las cadenas de texto son visibles desde este y no desde el olly por ejemplo. Les recomiendo simplemente que se lo descarguen y le echen una ojeada , con lo explicado para el OllyDBG no tendrán el menor problema para entender el funcionamiento del mismo.

Autor y licencia de 'Curso de Cracking - Funcionamiento del OllyDBG'
JaMaikito Extraído de: http://www.indaya.com GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Curso de Cracking - Funcionamiento del OllyDBG'

El objetivo de este curso es aprender a programar en el lenguaje Ada, desde sus... Más »
Excelente curso de iniciación a la astronomía para aquellos que quieran aprender sobre esta apasionante... Más »
La idea de este curso surgió de varias conversaciones entre amig@s de la cuadrilla y... Más »
Este es un curso tremendamente completo, guiado y con ejemplos y prácticas pensadas para convertirlo... Más »
Curso basico de configuracion y funcionamiento del software de un PC o computadora.
¿Estás seguro de que deseas eliminar este capítulo?