OllydbgDepurador o desensamblador
Introducción OllyDbg es un depurador de código ensamblador de 32 bits para sistemasoperativos Microsoft Windows. Pone esp...
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...
Ingeniería Inversa OllyDbg es frecuentemente usado para la ingeniería inversa deprogramas. Es frecuentemente usado por cr...
Conociendo el programa Exactamente lo primero es conocer de la herramienta que vamos a utilizarpara desensamblar un progr...
Conociendo el programa
Conociendo el programa Como aquí estamos empezando desde cero pues, recién nos estamoshaciendo del archivo, y ahora ya qu...
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 paraarrancar el OLLYDBG y al cual...
Conociendo el programa Bueno ya tenemos bajado y preparado para arrancar a nuestroOLLYDBG.exe, lo ejecutamos como adminis...
Conociendo el programa
Conociendo el programa Allí esta el OLLYDBG vacío, y como siempre el primer programa queabriremos mas que nada para mirar...
Conociendo el programa
Conociendo el programa
Conociendo el programa Allí se abre el crackme y por ahora no importa que no entendamos lo quenos muestra ya mas adelante...
Conociendo el programa
Conociendo el programa
Conociendo el programa
Conociendo el programa
Conociendo el programa Anteriormente observamos las cuatro partes de la ventana principal delOLLYDBG. Desemsamblado Tam...
Conociendo el programa
Conociendo el programa
Conociendo el programa Otra cosita que hace a la claridad para trabajar y que por lo menos a mime gusta, aunque cada uno ...
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 enamarillo los JUMPS, lo cual es m...
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 superiorderecha del OLLYDBG, allí ...
Conociendo el programa Tiene muchísima más información que aun no veremos, pero se puedecambiar el modo de visualización ...
Conociendo el programa O haciendo clic con el ratón derecho del mouse en registros nos aprecerala siguiente ventana emerg...
Conociendo el programa Por ahora no ahondaremos mucho en eso ya que nos preocuparemosmás que nada en el tema REGISTROS y ...
Conociendo el programa
Conociendo el programa Por default y lo que mas se utiliza es la vista relativa a ESP, pero paracambiar a la vista según ...
Conociendo el programa
Conociendo el programa DUMP La ventana del DUMP tiene muchas opciones de visualización, por DEFAULTnos muestra la visual...
Conociendo el programa
Conociendo el programa La opción por DEFAULT es la que generalmente mas se usa, aunquetenemos opciones para cambiar para ...
Conociendo el programa El botón L nos muestra lo que el OLLYDBG escribe en la ventana del LOGlo cual puede ser configurad...
Conociendo el programa
Conociendo el programa El botón E o VIEW-EXECUTABLES nos muestra la listado de los ejecutablesque utiliza el programa, ex...
Conociendo el programa
Conociendo el programa Aquí también el botón derecho tiene muchas opciones que por ahora noveremos ya que estamos mirando...
Conociendo el programa
Conociendo el programa El botón M o VIEW – MEMORY, nos muestra la memoria ocupada pornuestro programa, allí se ven las se...
Conociendo el programa El botón M o VIEW – MEMORY, nos muestra la memoria ocupada pornuestro programa, allí se ven las se...
Conociendo el programa
Conociendo el programa Haciendo clic derecho podemos hacer SEARCH en la memoria parabuscar en ella, strings, cadenas hexa...
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 ventana...
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 necesario...
Conociendo el programa Agregando PLUGINS al OLLYDBG Solo copiamos el contenido de la carpeta Command Bar a nuestrodirect...
Conociendo el programa Es una barra para escribir comandos que nos facilitara mucho las cosas,mas adelante veremos su uso...
Conociendo el programa Las teclas mas usadas en el OLLYDBG son: F7: Ejecuta una sola línea de código (si estas en un CAL...
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 hayactivo un BP o Breakpoint...
Conociendo el programa Si colocamos un Breakpoint en la dirección 0040101A al presionar F9 elprograma se detendrá y nos a...
Conociendo el programa
Conociendo el programa Si quitamos el Breakpoint presionando nuevamente F2 en esa direccióntendremos 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 estaPAUSADO, podemos volver a hacerlo corre...
Conociendo el programa
Upcoming SlideShare
Loading in …5
×

Ollydbg introducción

1,763 views

Published on

Ollydbg introducción

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,763
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
42
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Ollydbg introducción

  1. 1. OllydbgDepurador o desensamblador
  2. 2. Introducción OllyDbg es un depurador de código ensamblador de 32 bits para sistemasoperativos Microsoft Windows. Pone especial énfasis en el análisis delcódigo binario, esto lo hace muy útil cuando no está dispone el códigofuente del programa. Traza registros, reconoce procedimientos, llamadas a las API, swiches,tablas, constantes y strings, así como localiza rutinas de archivos objeto yde bibliotecas.
  3. 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 librede costo, pero la licencia shareware requiere que los usuarios se registrencon el autor.
  4. 4. Ingeniería Inversa OllyDbg es frecuentemente usado para la ingeniería inversa deprogramas. Es frecuentemente usado por crackers para crackear softwarehecho por otros desarrolladores. Es a menudo la herramienta primaria para cracking e ingeniería inversadebido a su facilidad de uso y disponibilidad. Es también útil para que los programadores se aseguren de que suprograma está corriendo según lo previsto.
  5. 5. Conociendo el programa Exactamente lo primero es conocer de la herramienta que vamos a utilizarpara desensamblar un programa, para ello pueden podemos bajarla de lasiguiente dirección: http://www.ollydbg.de/version2.html Yo recomiendo bajar la de octubre 04 del 2012, ya que es la versiónestable.
  6. 6. Conociendo el programa
  7. 7. Conociendo el programa Como aquí estamos empezando desde cero pues, recién nos estamoshaciendo del archivo, y ahora ya que es un archivo zipeado, lounzipearemos con WINZIP preferentemente a una carpeta en nuestrodisco que podamos localizar fácilmente, una buena idea seria ponerdicha carpeta en C:/ aunque funciona en cualquier lugar, yo la pondré enC:/.
  8. 8. Conociendo el programa Una vez descomprimido podemos entrar a la carpeta y ver
  9. 9. Conociendo el programa Allí esta el archivo ejecutable OLLYDBG.exe el cual ejecutaremos paraarrancar el OLLYDBG y al cual para comodidad le haré un acceso directoen mi escritorio.
  10. 10. Conociendo el programa Bueno ya tenemos bajado y preparado para arrancar a nuestroOLLYDBG.exe, lo ejecutamos como administrador.
  11. 11. Conociendo el programa
  12. 12. Conociendo el programa Allí esta el OLLYDBG vacío, y como siempre el primer programa queabriremos mas que nada para mirar las diferentes partes del OLLYDBG ypoder ubicarnos en sus diferente partes, abrimos el crackme.exe que setrabajo la clase pasada con W32DSM89. Para abrir el archivo a debuggear o desemsamblar en el OLLYDBG, vamosa FILE OPEN o hacemos clic en el icono
  13. 13. Conociendo el programa
  14. 14. Conociendo el programa
  15. 15. Conociendo el programa Allí se abre el crackme y por ahora no importa que no entendamos lo quenos muestra ya mas adelante aprenderemos eso, la idea es ir mostrandolas partes del OLLYDBG y ciertas configuraciones del mismo.
  16. 16. Conociendo el programa
  17. 17. Conociendo el programa
  18. 18. Conociendo el programa
  19. 19. Conociendo el programa
  20. 20. Conociendo el programa Anteriormente observamos las cuatro partes de la ventana principal delOLLYDBG. Desemsamblado También llamado listado, aquí el OLLY nos muestra el listadodesensamblado del programa que vamos a debuggear, por DEFAULT elOLLY viene configurado para analizar el programa que vamos adebuggear si deseamos cambiar opciones vamos Options yposteriormente a Options y nos aparecerá la siguiente pantalla.
  21. 21. Conociendo el programa
  22. 22. Conociendo el programa
  23. 23. Conociendo el programa Otra cosita que hace a la claridad para trabajar y que por lo menos a mime gusta, aunque cada uno puede variar en estos temas es colorizar losJUMPS Y CALLS eso se hace haciendo clic derecho APPEARENCE –HIGHLIGHTING – JUMPS AND CALLS
  24. 24. Conociendo el programa
  25. 25. Conociendo el programa El resultado es el siguiente
  26. 26. Conociendo el programa
  27. 27. Conociendo el programa Observamos que en color azul aqua quedan resaltados los CALLS y enamarillo los JUMPS, lo cual es mas claro para la vista. Bueno con eso nuestro listado queda mas fácil de interpretar, aunque aunno tengamos la mas remota idea de que significa, pero bueno hay quepreparar antes las herramientas para poder ir de a poco aprendiendo
  28. 28. Conociendo el programa Registros La segunda ventana importante del OLLYDBG es la de los REGISTROS
  29. 29. Conociendo el programa Recordamos que la ventana de registros se encuentra en la parte superiorderecha del OLLYDBG, allí muestra bastante mas información sobre losregistros en si
  30. 30. Conociendo el programa Tiene muchísima más información que aun no veremos, pero se puedecambiar el modo de visualización en tres formas. (REGISTERS FPU, REGISTERS3D NOW Y REGISTERS MMX) por default viene elegida la primera(Presionando en la barra en gris Registers (FPU)) como se muestra acontinuación.
  31. 31. Conociendo el programa O haciendo clic con el ratón derecho del mouse en registros nos aprecerala siguiente ventana emergente.
  32. 32. Conociendo el programa Por ahora no ahondaremos mucho en eso ya que nos preocuparemosmás que nada en el tema REGISTROS y FLAGS, lo menciono para quesepan que hay varias vistas en el registro. Stack o PILA Bueno allí vemos el llamado STACK O PILA aquí no hay muchaconfiguración posible solo la opción de mostrar la información relativa alregistro ESP o al registro EBP.
  33. 33. Conociendo el programa
  34. 34. Conociendo el programa Por default y lo que mas se utiliza es la vista relativa a ESP, pero paracambiar a la vista según EBP, haciendo clic derecho en el stack eligiendoGO TO EBP cambiamos y para volver GO TO ESP volvemos a la opción pordefault.
  35. 35. Conociendo el programa
  36. 36. Conociendo el programa DUMP La ventana del DUMP tiene muchas opciones de visualización, por DEFAULTnos muestra la visualización HEXADECIMAL de 16 bytes, la cual puede sermodificada haciendo CLICK DERECHO en el DUMP y eligiendo la opcióndeseada.
  37. 37. Conociendo el programa
  38. 38. Conociendo el programa La opción por DEFAULT es la que generalmente mas se usa, aunquetenemos 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, sepuede acceder a ellas, tanto por el menú, como por los botones de lasvistas.
  39. 39. Conociendo el programa El botón L nos muestra lo que el OLLYDBG escribe en la ventana del LOGlo cual puede ser configurado para mostrar diferentes tipos deinformació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 porlos diferentes BREAKPOINTS CONDICIONAL LOGS, lo cual se vera masadelante, 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.
  40. 40. Conociendo el programa
  41. 41. Conociendo el programa El botón E o VIEW-EXECUTABLES nos muestra la listado de los ejecutablesque utiliza el programa, exe, dlls, ocxs, etc.
  42. 42. Conociendo el programa
  43. 43. Conociendo el programa Aquí también el botón derecho tiene muchas opciones que por ahora noveremos ya que estamos mirando en forma general al OLLYDBG.
  44. 44. Conociendo el programa
  45. 45. Conociendo el programa El botón M o VIEW – MEMORY, nos muestra la memoria ocupada pornuestro programa, allí se ven las secciones del ejecutable, dlls que utiliza elproceso, así como el stack y diversas secciones y muchas veces al correrlos programas, los mismos realizan nuevas locaciones de memoria. Entiempo de ejecución.
  46. 46. Conociendo el programa El botón M o VIEW – MEMORY, nos muestra la memoria ocupada pornuestro programa, allí se ven las secciones del ejecutable, dlls que utiliza elproceso, así como el stack y diversas secciones y muchas veces al correrlos programas, los mismos realizan nuevas locaciones de memoria. Entiempo de ejecución.
  47. 47. Conociendo el programa
  48. 48. Conociendo el programa Haciendo clic derecho podemos hacer SEARCH en la memoria parabuscar en ella, strings, cadenas hexa, unicode etc., además nos da laposibilidad de colocar diferentes tipos de breakpoints en la secciones,como así también la posibilidad de cambiar el acceso a las mismas conSET ACCESS ya profundizaremos en esto.
  49. 49. Conociendo el programa
  50. 50. Conociendo el programa El botón T o VIEW-THREADS nos da el listado de los THREADS del programa
  51. 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. 52. Conociendo el programa El botón C o VIEW-CPU nos retorna a la ventana principal del programa
  53. 53. Conociendo el programa Agregando PLUGINS al OLLYDBG El OLLYDBG trae la opción para agregar plugins que nos son necesariospara realizar cierta tarea, por ahora solo agregaremos el pluginCOMMAND BAR para aprender como se agregan los mismos. Bajamos el plugin COMMAND BAR el cual puede ser bajado de mi blog detrabajo el cual tiene la siguiente dirección https://mega.co.nz/#!Ug9VHT4A!MgMCOyySbfxEd_a3vbxxIAE6hmIEv4n4Uy_vT_w8JUY
  54. 54. Conociendo el programa Agregando PLUGINS al OLLYDBG Solo copiamos el contenido de la carpeta Command Bar a nuestrodirectorio raíz donde corremos el OLLYDBG y cuando lo ejecutemos seactivara el menú de plugins con nuestro plugin agregado.
  55. 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 agregarplugins. Para quitar cualquier PLUGIN con solo quitar la dll correspondiente denuestra carpeta PLUGINS y reiniciar el OLLYDBG, desaparecerá, lesaconsejo que dejen siempre activa la COMMAND BAR. Arranco nuevamente el crackme EN OLLYDBG y tendremos la barra
  56. 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 aejecutarlo por dentro) F8: Ejecuta una sola línea de código (si estas en un CALL no entra al mismolo ejecuta completo sin entrar y sigue en la siguiente línea luego del CALL) Esos dos formas de tracear manualmente son verdaderamente diferentes ysegú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 enel listado, para quitar el BP aprietas nuevamente F2.
  57. 57. Conociendo el programa Por ejemplo Quiero poner un BP en 40101A pues marco con el Mouse esa línea
  58. 58. Conociendo el programa
  59. 59. Conociendo el programa
  60. 60. Conociendo el programa Vemos que se pinta de rojo la zona de la dirección, eso significa que hayactivo 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 lodetenga o FINALICE por algún motivo, al apretar RUN veremos en laesquina inferior del OLLYDBG la palabra RUNNING o sea que estaCORRIENDO.
  61. 61. Conociendo el programa Si colocamos un Breakpoint en la dirección 0040101A al presionar F9 elprograma se detendrá y nos aparecerá lo siguiente
  62. 62. Conociendo el programa
  63. 63. Conociendo el programa Si quitamos el Breakpoint presionando nuevamente F2 en esa direccióntendremos los siguiente
  64. 64. Conociendo el programa
  65. 65. Conociendo el programa Si PAUSO la ejecución en OLLYDBG apretando F12 o DEBUG –PAUSE,tendremos lo siguiente
  66. 66. Conociendo el programa
  67. 67. Conociendo el programa Vemos que el OLLYDBG cambia a mostrar PAUSED o sea que estaPAUSADO, podemos volver a hacerlo correr con F9 o DEBUG-RUN Para cerrar el programa que esta siendo DEBUGGEADO apreto DEBUG-CLOSE
  68. 68. Conociendo el programa

×