SlideShare una empresa de Scribd logo
Ollydbg
Depurador o desensamblador
Introducción
 OllyDbg es un depurador de código ensamblador de 32 bits para sistemas
operativos Microsoft Windows. Pone especial énfasis en el análisis del
código binario, esto lo hace muy útil cuando no está dispone el código
fuente del programa.
 Traza registros, reconoce procedimientos, llamadas a las API, swiches,
tablas, constantes y strings, así como localiza rutinas de archivos objeto y
de bibliotecas.
Introducción
 De acuerdo con la ayuda incluida en el programa, la versión 1.10 es la
última versión estable. La versión 2.0, ya esta disponible. El software es libre
de costo, pero la licencia shareware requiere que los usuarios se registren
con el autor.
Ingeniería Inversa
 OllyDbg es frecuentemente usado para la ingeniería inversa de
programas. Es frecuentemente usado por crackers para crackear software
hecho por otros desarrolladores.
 Es a menudo la herramienta primaria para cracking e ingeniería inversa
debido a su facilidad de uso y disponibilidad.
 Es también útil para que los programadores se aseguren de que su
programa está corriendo según lo previsto.
Conociendo el programa
 Exactamente lo primero es conocer de la herramienta que vamos a utilizar
para desensamblar un programa, para ello pueden podemos bajarla de la
siguiente dirección:
 http://www.ollydbg.de/version2.html
 Yo recomiendo bajar la de octubre 04 del 2012, ya que es la versión
estable.
Conociendo el programa
Conociendo el programa
 Como aquí estamos empezando desde cero pues, recién nos estamos
haciendo del archivo, y ahora ya que es un archivo zipeado, lo
unzipearemos con WINZIP preferentemente a una carpeta en nuestro
disco que podamos localizar fácilmente, una buena idea seria poner
dicha carpeta en C:/ aunque funciona en cualquier lugar, yo la pondré en
C:/.
Conociendo el programa
 Una vez descomprimido podemos entrar a la carpeta y ver
Conociendo el programa
 Allí esta el archivo ejecutable OLLYDBG.exe el cual ejecutaremos para
arrancar el OLLYDBG y al cual para comodidad le haré un acceso directo
en mi escritorio.
Conociendo el programa
 Bueno ya tenemos bajado y preparado para arrancar a nuestro
OLLYDBG.exe, lo ejecutamos como administrador.
Conociendo el programa
Conociendo el programa
 Allí esta el OLLYDBG vacío, y como siempre el primer programa que
abriremos mas que nada para mirar las diferentes partes del OLLYDBG y
poder ubicarnos en sus diferente partes, abrimos el crackme.exe que se
trabajo la clase pasada con W32DSM89.
 Para abrir el archivo a debuggear o desemsamblar en el OLLYDBG, vamos
a FILE OPEN o hacemos clic en el icono
Conociendo el programa
Conociendo el programa
Conociendo el programa
 Allí se abre el crackme y por ahora no importa que no entendamos lo que
nos muestra ya mas adelante aprenderemos eso, la idea es ir mostrando
las partes del OLLYDBG y ciertas configuraciones del mismo.
Conociendo el programa
Conociendo el programa
Conociendo el programa
Conociendo el programa
Conociendo el programa
 Anteriormente observamos las cuatro partes de la ventana principal del
OLLYDBG.
 Desemsamblado
 También llamado listado, aquí el OLLY nos muestra el listado
desensamblado del programa que vamos a debuggear, por DEFAULT el
OLLY viene configurado para analizar el programa que vamos a
debuggear si deseamos cambiar opciones vamos Options y
posteriormente a Options y nos aparecerá la siguiente pantalla.
Conociendo el programa
Conociendo el programa
Conociendo el programa
 Otra cosita que hace a la claridad para trabajar y que por lo menos a mi
me gusta, aunque cada uno puede variar en estos temas es colorizar los
JUMPS Y CALLS eso se hace haciendo clic derecho APPEARENCE –
HIGHLIGHTING – JUMPS AND CALLS
Conociendo el programa
Conociendo el programa
 El resultado es el siguiente
Conociendo el programa
Conociendo el programa
 Observamos que en color azul aqua quedan resaltados los CALLS y en
amarillo los JUMPS, lo cual es mas claro para la vista.
 Bueno con eso nuestro listado queda mas fácil de interpretar, aunque aun
no tengamos la mas remota idea de que significa, pero bueno hay que
preparar antes las herramientas para poder ir de a poco aprendiendo
Conociendo el programa
 Registros
 La segunda ventana importante del OLLYDBG es la de los REGISTROS
Conociendo el programa
 Recordamos que la ventana de registros se encuentra en la parte superior
derecha del OLLYDBG, allí muestra bastante mas información sobre los
registros en si
Conociendo el programa
 Tiene muchísima más información que aun no veremos, pero se puede
cambiar el modo de visualización en tres formas. (REGISTERS FPU, REGISTERS
3D NOW Y REGISTERS MMX) por default viene elegida la primera
(Presionando en la barra en gris Registers (FPU)) como se muestra a
continuación.
Conociendo el programa
 O haciendo clic con el ratón derecho del mouse en registros nos aprecera
la siguiente ventana emergente.
Conociendo el programa
 Por ahora no ahondaremos mucho en eso ya que nos preocuparemos
más que nada en el tema REGISTROS y FLAGS, lo menciono para que
sepan que hay varias vistas en el registro.
 Stack o PILA
 Bueno allí vemos el llamado STACK O PILA aquí no hay mucha
configuración posible solo la opción de mostrar la información relativa al
registro ESP o al registro EBP.
Conociendo el programa
Conociendo el programa
 Por default y lo que mas se utiliza es la vista relativa a ESP, pero para
cambiar a la vista según EBP, haciendo clic derecho en el stack eligiendo
GO TO EBP cambiamos y para volver GO TO ESP volvemos a la opción por
default.
Conociendo el programa
Conociendo el programa
 DUMP
 La ventana del DUMP tiene muchas opciones de visualización, por DEFAULT
nos muestra la visualización HEXADECIMAL de 16 bytes, la cual puede ser
modificada haciendo CLICK DERECHO en el DUMP y eligiendo la opción
deseada.
Conociendo el programa
Conociendo el programa
 La opción por DEFAULT es la que generalmente mas se usa, aunque
tenemos opciones para cambiar para mostrar desensamblado
(DISASSEMBLE), Texto (TEXT) y diversos formatos (SHORT, LONG, FLOAT).
 Ya conocemos las partes que se ven en la ventana principal del OLLYDBG,
aunque también hay más ventanas que no se ven directamente, se
puede acceder a ellas, tanto por el menú, como por los botones de las
vistas.
Conociendo el programa
 El botón L nos muestra lo que el OLLYDBG escribe en la ventana del LOG
lo cual puede ser configurado para mostrar diferentes tipos de
información, por default en la ventana del LOG va guardando allí
información sobre el arranque, y de la información escrita en el mismo por
los diferentes BREAKPOINTS CONDICIONAL LOGS, lo cual se vera mas
adelante, por ahora vemos allí ,la información del proceso que arranco,
en este caso el crackme, las dll que cargo, y ciertos tips sobre el análisis.
Conociendo el programa
Conociendo el programa
 El botón E o VIEW-EXECUTABLES nos muestra la listado de los ejecutables
que utiliza el programa, exe, dlls, ocxs, etc.
Conociendo el programa
Conociendo el programa
 Aquí también el botón derecho tiene muchas opciones que por ahora no
veremos ya que estamos mirando en forma general al OLLYDBG.
Conociendo el programa
Conociendo el programa
 El botón M o VIEW – MEMORY, nos muestra la memoria ocupada por
nuestro programa, allí se ven las secciones del ejecutable, dlls que utiliza el
proceso, así como el stack y diversas secciones y muchas veces al correr
los programas, los mismos realizan nuevas locaciones de memoria. En
tiempo de ejecución.
Conociendo el programa
 El botón M o VIEW – MEMORY, nos muestra la memoria ocupada por
nuestro programa, allí se ven las secciones del ejecutable, dlls que utiliza el
proceso, así como el stack y diversas secciones y muchas veces al correr
los programas, los mismos realizan nuevas locaciones de memoria. En
tiempo de ejecución.
Conociendo el programa
Conociendo el programa
 Haciendo clic derecho podemos hacer SEARCH en la memoria para
buscar en ella, strings, cadenas hexa, unicode etc., además nos da la
posibilidad de colocar diferentes tipos de breakpoints en la secciones,
como así también la posibilidad de cambiar el acceso a las mismas con
SET ACCESS ya profundizaremos en esto.
Conociendo el programa
Conociendo el programa
 El botón T o VIEW-THREADS nos da el listado de los THREADS del programa
Conociendo el programa
 El botón W o VIEW-WINDOWS nos muestra las ventanas del programa,
como aun no corrió, no hay ventanas así que esta vacía.
Conociendo el programa
 El botón C o VIEW-CPU nos retorna a la ventana principal del programa
Conociendo el programa
 Agregando PLUGINS al OLLYDBG
 El OLLYDBG trae la opción para agregar plugins que nos son necesarios
para realizar cierta tarea, por ahora solo agregaremos el plugin
COMMAND BAR para aprender como se agregan los mismos.
 Bajamos el plugin COMMAND BAR el cual puede ser bajado de mi blog de
trabajo el cual tiene la siguiente dirección
 https://mega.co.nz/#!Ug9VHT4A!MgMCOyySbfxEd_a3vbxxIAE6hmIEv4n4Uy
_vT_w8JUY
Conociendo el programa
 Agregando PLUGINS al OLLYDBG
 Solo copiamos el contenido de la carpeta Command Bar a nuestro
directorio raíz donde corremos el OLLYDBG y cuando lo ejecutemos se
activara el menú de plugins con nuestro plugin agregado.
Conociendo el programa
 Es una barra para escribir comandos que nos facilitara mucho las cosas,
mas adelante veremos su uso, por ahora lo importante es saber agregar
plugins.
 Para quitar cualquier PLUGIN con solo quitar la dll correspondiente de
nuestra carpeta PLUGINS y reiniciar el OLLYDBG, desaparecerá, les
aconsejo que dejen siempre activa la COMMAND BAR.
 Arranco nuevamente el crackme EN OLLYDBG y tendremos la barra
Conociendo el programa
 Las teclas mas usadas en el OLLYDBG son:
 F7: Ejecuta una sola línea de código (si estas en un CALL entra al mismo a
ejecutarlo por dentro)
 F8: Ejecuta una sola línea de código (si estas en un CALL no entra al mismo
lo ejecuta completo sin entrar y sigue en la siguiente línea luego del CALL)
 Esos dos formas de tracear manualmente son verdaderamente diferentes y
según cada caso usaremos F7 o F8 lo cual veremos más adelante.
 F2: Coloca un Breakpoint COMUN en la línea que marcas con el Mouse en
el listado, para quitar el BP aprietas nuevamente F2.
Conociendo el programa
 Por ejemplo
 Quiero poner un BP en 40101A pues marco con el Mouse esa línea
Conociendo el programa
Conociendo el programa
Conociendo el programa
 Vemos que se pinta de rojo la zona de la dirección, eso significa que hay
activo un BP o Breakpoint allí, si apreto F2 nuevamente se quita.
 F9: Para Correr el programa es similar a RUN, con esto el programa correrá,
hasta que encuentre algún BREAKPOINT, o alguna EXCEPCION que lo
detenga o FINALICE por algún motivo, al apretar RUN veremos en la
esquina inferior del OLLYDBG la palabra RUNNING o sea que esta
CORRIENDO.
Conociendo el programa
 Si colocamos un Breakpoint en la dirección 0040101A al presionar F9 el
programa se detendrá y nos aparecerá lo siguiente
Conociendo el programa
Conociendo el programa
 Si quitamos el Breakpoint presionando nuevamente F2 en esa dirección
tendremos los siguiente
Conociendo el programa
Conociendo el programa
 Si PAUSO la ejecución en OLLYDBG apretando F12 o DEBUG –PAUSE,
tendremos lo siguiente
Conociendo el programa
Conociendo el programa
 Vemos que el OLLYDBG cambia a mostrar PAUSED o sea que esta
PAUSADO, podemos volver a hacerlo correr con F9 o DEBUG-RUN
 Para cerrar el programa que esta siendo DEBUGGEADO apreto DEBUG-
CLOSE
Conociendo el programa

Más contenido relacionado

PPTX
DevOps Torino Meetup - SRE Concepts
PDF
DevOps
PDF
DevSecOps: What Why and How : Blackhat 2019
PPTX
DevOps introduction
PPTX
PROGRAMAS EN DEV C++
PDF
Demystifying DevOps
PDF
Automated testing with Cypress
PDF
DevSecOps
DevOps Torino Meetup - SRE Concepts
DevOps
DevSecOps: What Why and How : Blackhat 2019
DevOps introduction
PROGRAMAS EN DEV C++
Demystifying DevOps
Automated testing with Cypress
DevSecOps

La actualidad más candente (15)

PDF
Observability driven development
PPTX
DevOps culture
PPTX
Appium with MySQL Database
PPTX
It depends: Loving .NET Core dependency injection or not
PDF
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
PPTX
What's new in Java 11
PPTX
Grafico estadístico de los sistemas operativos mas usados
PPTX
An introduction to DevOps
PPTX
Visual basic
PPTX
PDF
The Four Keys - Measuring DevOps Success
PPTX
DevOps intro
PDF
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
PPTX
End to end test automation with cypress
PPTX
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Observability driven development
DevOps culture
Appium with MySQL Database
It depends: Loving .NET Core dependency injection or not
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What's new in Java 11
Grafico estadístico de los sistemas operativos mas usados
An introduction to DevOps
Visual basic
The Four Keys - Measuring DevOps Success
DevOps intro
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
End to end test automation with cypress
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Publicidad

Destacado (20)

PPTX
Ejercicio 2 con ollydbg
PPTX
Trabajando pescando y revirtiendo seriales con ollydbg
PPTX
Introduccion a ollydbg clase 11a
PPTX
Curso de crackeo para empezar desde cero leccion 1 clase10
PPTX
Método de la regla falsa (o metodo de la falsa posición)
PDF
Seguridad y ataques de im en entornos corporativos
PPTX
Tipos de datos ok
PPTX
Condicional if en c++
PPTX
Solución examen 1 con ollydbg
PPTX
Elementos basicos c++
PPTX
Arrays, arreglos o vectores en c++
PPTX
Introducción
PPTX
Clase 14 ondas reflejadas
PPTX
Clase 7 ondas electromagneticas
PPTX
Clase 0 presentación
PPTX
Sentencia, secuencia y bloque
PPTX
Pse int
PPTX
Elementos basicos c++
PPTX
Simulación en promodel clase 04
PPTX
Sentencia, secuencia y bloque
Ejercicio 2 con ollydbg
Trabajando pescando y revirtiendo seriales con ollydbg
Introduccion a ollydbg clase 11a
Curso de crackeo para empezar desde cero leccion 1 clase10
Método de la regla falsa (o metodo de la falsa posición)
Seguridad y ataques de im en entornos corporativos
Tipos de datos ok
Condicional if en c++
Solución examen 1 con ollydbg
Elementos basicos c++
Arrays, arreglos o vectores en c++
Introducción
Clase 14 ondas reflejadas
Clase 7 ondas electromagneticas
Clase 0 presentación
Sentencia, secuencia y bloque
Pse int
Elementos basicos c++
Simulación en promodel clase 04
Sentencia, secuencia y bloque
Publicidad

Similar a Ollydbg introducción (20)

PDF
Introduccion al cracking con ollydbg partes 1 a 10
PDF
Atix08
DOCX
DOCX
DOCX
Como instalar Prolog en Windows
PDF
Instalación Eclipse. Básico
DOCX
DOCX
Unidad 3
DOCX
DOCX
PDF
Guía básica de depuración de código xcode 6 apple coding
PDF
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
PDF
6 curso
PDF
2 curso
PDF
Introduccion a small_basic
PDF
Introduccion a small basic
PPTX
Code bloks tutorial_terminado
PPTX
Code bloks tutorial_terminado
PDF
Informe vb compiler
Introduccion al cracking con ollydbg partes 1 a 10
Atix08
Como instalar Prolog en Windows
Instalación Eclipse. Básico
Unidad 3
Guía básica de depuración de código xcode 6 apple coding
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
6 curso
2 curso
Introduccion a small_basic
Introduccion a small basic
Code bloks tutorial_terminado
Code bloks tutorial_terminado
Informe vb compiler

Más de Tensor (20)

PDF
Libertad
PPTX
Metodo de la bisección
PPTX
Transito vehicular
PPTX
Teoria de colas
PDF
Practica 7 2016
PDF
Practica 6 2016
PPTX
Game maker
PDF
Practica 5 2016
PPTX
Procesamiento de archivos
PPTX
Cadenas y funciones de cadena
PDF
Reduccion de orden
PDF
Variación+de+parametros
PDF
Coeficientes indeterminados enfoque de superposición
PDF
Bernoulli y ricatti
PDF
Practica no. 3 tiempo de servicio
PDF
Ondas em
PDF
Practicas 8 2016
PDF
Practica 4 2016
PDF
Practicas 3 2016
PDF
Practicas 2 2016
Libertad
Metodo de la bisección
Transito vehicular
Teoria de colas
Practica 7 2016
Practica 6 2016
Game maker
Practica 5 2016
Procesamiento de archivos
Cadenas y funciones de cadena
Reduccion de orden
Variación+de+parametros
Coeficientes indeterminados enfoque de superposición
Bernoulli y ricatti
Practica no. 3 tiempo de servicio
Ondas em
Practicas 8 2016
Practica 4 2016
Practicas 3 2016
Practicas 2 2016

Último (20)

PPTX
Clase 3 del silabo-gestion y control financiero
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
PDF
Esc. Sab. Lección 7. El pan y el agua de vida.pdf
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
PDF
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
PDF
CURRICULAR DE PRIMARIA santa ursula..pdf
DOC
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PPTX
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
PPTX
4. Qué es un computador PARA GRADO CUARTO.pptx
PDF
informe tipos de Informatica perfiles profesionales _pdf
PDF
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
PDF
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
PDF
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
Clase 3 del silabo-gestion y control financiero
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
Esc. Sab. Lección 7. El pan y el agua de vida.pdf
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
CURRICULAR DE PRIMARIA santa ursula..pdf
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
4. Qué es un computador PARA GRADO CUARTO.pptx
informe tipos de Informatica perfiles profesionales _pdf
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
Ernst Cassirer - Antropologia Filosofica.pdf
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf

Ollydbg introducción

  • 2. Introducción  OllyDbg es un depurador de código ensamblador de 32 bits para sistemas operativos Microsoft Windows. Pone especial énfasis en el análisis del código binario, esto lo hace muy útil cuando no está dispone el código fuente del programa.  Traza registros, reconoce procedimientos, llamadas a las API, swiches, tablas, constantes y strings, así como localiza rutinas de archivos objeto y de bibliotecas.
  • 3. Introducción  De acuerdo con la ayuda incluida en el programa, la versión 1.10 es la última versión estable. La versión 2.0, ya esta disponible. El software es libre de costo, pero la licencia shareware requiere que los usuarios se registren con el autor.
  • 4. Ingeniería Inversa  OllyDbg es frecuentemente usado para la ingeniería inversa de programas. Es frecuentemente usado por crackers para crackear software hecho por otros desarrolladores.  Es a menudo la herramienta primaria para cracking e ingeniería inversa debido a su facilidad de uso y disponibilidad.  Es también útil para que los programadores se aseguren de que su programa está corriendo según lo previsto.
  • 5. Conociendo el programa  Exactamente lo primero es conocer de la herramienta que vamos a utilizar para desensamblar un programa, para ello pueden podemos bajarla de la siguiente dirección:  http://www.ollydbg.de/version2.html  Yo recomiendo bajar la de octubre 04 del 2012, ya que es la versión estable.
  • 7. Conociendo el programa  Como aquí estamos empezando desde cero pues, recién nos estamos haciendo del archivo, y ahora ya que es un archivo zipeado, lo unzipearemos con WINZIP preferentemente a una carpeta en nuestro disco que podamos localizar fácilmente, una buena idea seria poner dicha carpeta en C:/ aunque funciona en cualquier lugar, yo la pondré en C:/.
  • 8. Conociendo el programa  Una vez descomprimido podemos entrar a la carpeta y ver
  • 9. Conociendo el programa  Allí esta el archivo ejecutable OLLYDBG.exe el cual ejecutaremos para arrancar el OLLYDBG y al cual para comodidad le haré un acceso directo en mi escritorio.
  • 10. Conociendo el programa  Bueno ya tenemos bajado y preparado para arrancar a nuestro OLLYDBG.exe, lo ejecutamos como administrador.
  • 12. Conociendo el programa  Allí esta el OLLYDBG vacío, y como siempre el primer programa que abriremos mas que nada para mirar las diferentes partes del OLLYDBG y poder ubicarnos en sus diferente partes, abrimos el crackme.exe que se trabajo la clase pasada con W32DSM89.  Para abrir el archivo a debuggear o desemsamblar en el OLLYDBG, vamos a FILE OPEN o hacemos clic en el icono
  • 15. Conociendo el programa  Allí se abre el crackme y por ahora no importa que no entendamos lo que nos muestra ya mas adelante aprenderemos eso, la idea es ir mostrando las partes del OLLYDBG y ciertas configuraciones del mismo.
  • 20. Conociendo el programa  Anteriormente observamos las cuatro partes de la ventana principal del OLLYDBG.  Desemsamblado  También llamado listado, aquí el OLLY nos muestra el listado desensamblado del programa que vamos a debuggear, por DEFAULT el OLLY viene configurado para analizar el programa que vamos a debuggear si deseamos cambiar opciones vamos Options y posteriormente a Options y nos aparecerá la siguiente pantalla.
  • 23. Conociendo el programa  Otra cosita que hace a la claridad para trabajar y que por lo menos a mi me gusta, aunque cada uno puede variar en estos temas es colorizar los JUMPS Y CALLS eso se hace haciendo clic derecho APPEARENCE – HIGHLIGHTING – JUMPS AND CALLS
  • 25. Conociendo el programa  El resultado es el siguiente
  • 27. Conociendo el programa  Observamos que en color azul aqua quedan resaltados los CALLS y en amarillo los JUMPS, lo cual es mas claro para la vista.  Bueno con eso nuestro listado queda mas fácil de interpretar, aunque aun no tengamos la mas remota idea de que significa, pero bueno hay que preparar antes las herramientas para poder ir de a poco aprendiendo
  • 28. Conociendo el programa  Registros  La segunda ventana importante del OLLYDBG es la de los REGISTROS
  • 29. Conociendo el programa  Recordamos que la ventana de registros se encuentra en la parte superior derecha del OLLYDBG, allí muestra bastante mas información sobre los registros en si
  • 30. Conociendo el programa  Tiene muchísima más información que aun no veremos, pero se puede cambiar el modo de visualización en tres formas. (REGISTERS FPU, REGISTERS 3D NOW Y REGISTERS MMX) por default viene elegida la primera (Presionando en la barra en gris Registers (FPU)) como se muestra a continuación.
  • 31. Conociendo el programa  O haciendo clic con el ratón derecho del mouse en registros nos aprecera la siguiente ventana emergente.
  • 32. Conociendo el programa  Por ahora no ahondaremos mucho en eso ya que nos preocuparemos más que nada en el tema REGISTROS y FLAGS, lo menciono para que sepan que hay varias vistas en el registro.  Stack o PILA  Bueno allí vemos el llamado STACK O PILA aquí no hay mucha configuración posible solo la opción de mostrar la información relativa al registro ESP o al registro EBP.
  • 34. Conociendo el programa  Por default y lo que mas se utiliza es la vista relativa a ESP, pero para cambiar a la vista según EBP, haciendo clic derecho en el stack eligiendo GO TO EBP cambiamos y para volver GO TO ESP volvemos a la opción por default.
  • 36. Conociendo el programa  DUMP  La ventana del DUMP tiene muchas opciones de visualización, por DEFAULT nos muestra la visualización HEXADECIMAL de 16 bytes, la cual puede ser modificada haciendo CLICK DERECHO en el DUMP y eligiendo la opción deseada.
  • 38. Conociendo el programa  La opción por DEFAULT es la que generalmente mas se usa, aunque tenemos opciones para cambiar para mostrar desensamblado (DISASSEMBLE), Texto (TEXT) y diversos formatos (SHORT, LONG, FLOAT).  Ya conocemos las partes que se ven en la ventana principal del OLLYDBG, aunque también hay más ventanas que no se ven directamente, se puede acceder a ellas, tanto por el menú, como por los botones de las vistas.
  • 39. Conociendo el programa  El botón L nos muestra lo que el OLLYDBG escribe en la ventana del LOG lo cual puede ser configurado para mostrar diferentes tipos de información, por default en la ventana del LOG va guardando allí información sobre el arranque, y de la información escrita en el mismo por los diferentes BREAKPOINTS CONDICIONAL LOGS, lo cual se vera mas adelante, por ahora vemos allí ,la información del proceso que arranco, en este caso el crackme, las dll que cargo, y ciertos tips sobre el análisis.
  • 41. Conociendo el programa  El botón E o VIEW-EXECUTABLES nos muestra la listado de los ejecutables que utiliza el programa, exe, dlls, ocxs, etc.
  • 43. Conociendo el programa  Aquí también el botón derecho tiene muchas opciones que por ahora no veremos ya que estamos mirando en forma general al OLLYDBG.
  • 45. Conociendo el programa  El botón M o VIEW – MEMORY, nos muestra la memoria ocupada por nuestro programa, allí se ven las secciones del ejecutable, dlls que utiliza el proceso, así como el stack y diversas secciones y muchas veces al correr los programas, los mismos realizan nuevas locaciones de memoria. En tiempo de ejecución.
  • 46. Conociendo el programa  El botón M o VIEW – MEMORY, nos muestra la memoria ocupada por nuestro programa, allí se ven las secciones del ejecutable, dlls que utiliza el proceso, así como el stack y diversas secciones y muchas veces al correr los programas, los mismos realizan nuevas locaciones de memoria. En tiempo de ejecución.
  • 48. Conociendo el programa  Haciendo clic derecho podemos hacer SEARCH en la memoria para buscar en ella, strings, cadenas hexa, unicode etc., además nos da la posibilidad de colocar diferentes tipos de breakpoints en la secciones, como así también la posibilidad de cambiar el acceso a las mismas con SET ACCESS ya profundizaremos en esto.
  • 50. Conociendo el programa  El botón T o VIEW-THREADS nos da el listado de los THREADS del programa
  • 51. Conociendo el programa  El botón W o VIEW-WINDOWS nos muestra las ventanas del programa, como aun no corrió, no hay ventanas así que esta vacía.
  • 52. Conociendo el programa  El botón C o VIEW-CPU nos retorna a la ventana principal del programa
  • 53. Conociendo el programa  Agregando PLUGINS al OLLYDBG  El OLLYDBG trae la opción para agregar plugins que nos son necesarios para realizar cierta tarea, por ahora solo agregaremos el plugin COMMAND BAR para aprender como se agregan los mismos.  Bajamos el plugin COMMAND BAR el cual puede ser bajado de mi blog de trabajo el cual tiene la siguiente dirección  https://mega.co.nz/#!Ug9VHT4A!MgMCOyySbfxEd_a3vbxxIAE6hmIEv4n4Uy _vT_w8JUY
  • 54. Conociendo el programa  Agregando PLUGINS al OLLYDBG  Solo copiamos el contenido de la carpeta Command Bar a nuestro directorio raíz donde corremos el OLLYDBG y cuando lo ejecutemos se activara el menú de plugins con nuestro plugin agregado.
  • 55. Conociendo el programa  Es una barra para escribir comandos que nos facilitara mucho las cosas, mas adelante veremos su uso, por ahora lo importante es saber agregar plugins.  Para quitar cualquier PLUGIN con solo quitar la dll correspondiente de nuestra carpeta PLUGINS y reiniciar el OLLYDBG, desaparecerá, les aconsejo que dejen siempre activa la COMMAND BAR.  Arranco nuevamente el crackme EN OLLYDBG y tendremos la barra
  • 56. Conociendo el programa  Las teclas mas usadas en el OLLYDBG son:  F7: Ejecuta una sola línea de código (si estas en un CALL entra al mismo a ejecutarlo por dentro)  F8: Ejecuta una sola línea de código (si estas en un CALL no entra al mismo lo ejecuta completo sin entrar y sigue en la siguiente línea luego del CALL)  Esos dos formas de tracear manualmente son verdaderamente diferentes y según cada caso usaremos F7 o F8 lo cual veremos más adelante.  F2: Coloca un Breakpoint COMUN en la línea que marcas con el Mouse en el listado, para quitar el BP aprietas nuevamente F2.
  • 57. Conociendo el programa  Por ejemplo  Quiero poner un BP en 40101A pues marco con el Mouse esa línea
  • 60. Conociendo el programa  Vemos que se pinta de rojo la zona de la dirección, eso significa que hay activo un BP o Breakpoint allí, si apreto F2 nuevamente se quita.  F9: Para Correr el programa es similar a RUN, con esto el programa correrá, hasta que encuentre algún BREAKPOINT, o alguna EXCEPCION que lo detenga o FINALICE por algún motivo, al apretar RUN veremos en la esquina inferior del OLLYDBG la palabra RUNNING o sea que esta CORRIENDO.
  • 61. Conociendo el programa  Si colocamos un Breakpoint en la dirección 0040101A al presionar F9 el programa se detendrá y nos aparecerá lo siguiente
  • 63. Conociendo el programa  Si quitamos el Breakpoint presionando nuevamente F2 en esa dirección tendremos los siguiente
  • 65. Conociendo el programa  Si PAUSO la ejecución en OLLYDBG apretando F12 o DEBUG –PAUSE, tendremos lo siguiente
  • 67. Conociendo el programa  Vemos que el OLLYDBG cambia a mostrar PAUSED o sea que esta PAUSADO, podemos volver a hacerlo correr con F9 o DEBUG-RUN  Para cerrar el programa que esta siendo DEBUGGEADO apreto DEBUG- CLOSE