Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
A brief introduction to reversing code              Longinos Recuero Bustos         http://longinox.blogspot.com.es       ...
definición     Es el proceso para el descubrimiento de los     principios tecnológicos de un dispositivo,                 ...
dominios      Ingeniería inversa del hardware      Ingeniería inversa del software4E 61 76 61 6A 61 20 4E 65 67 72 61 20...
Motivaciones / usos    Compatibilidad e Interoperabilidad    Espionaje: industrial, militar.    Documentación.    Audi...
requisitos4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
Conocimientos    Arquitectura de computadores (x86, x64, ARM, ...)         Opcodes         Registros         Direccion...
Conocimientos    Sistemas operativos:         Kernel         Anillos de privilegio         Subprocesos, Hilos        ...
Conocimientos    Estructura de los ficheros binarios:               PE (Portable and executable)               ELF (Exe...
Conocimientos    Estructuras del SS.OO:               TIB o TEB (Thread Information Block)               PEB (Process I...
herramientas       Descompiladores (Decompilers)          ILSpy, DJ Java Decompiler, ...       Desensambladores (Disass...
herramientas       Editores hexadecimales          Ultra Edit, HxD, ...       Dumps de memoria          LordPE Deluxe,...
aproximaciones    Caja blanca         Análisis estático.    Caja negra         Análisis funcional.    Caja gris      ...
Learn by example    Decompilación y análisis estático con                    ILSpy4E 61 76 61 6A 61 20 4E 65 67 72 61 20 4...
Ollydbg: Breve descripción    Desensamblador   /   depurador   de   32-bits                                            pa...
Learn by example          Desensamblado y análisis dinámico                     con OllyDbg4E 61 76 61 6A 61 20 4E 65 67 7...
Learn by example4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
Learn by example4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
Learn by example4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
Conclusiones4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
Conclusiones    No   tengo   talentos    especiales,                                  pero        sí      soy   profundam...
agradecimientos4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
agradecimientos                   A la organización de Navaja Negra                   A sus patrocinadores              ...
¿preguntas?4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
The end                   ALBACETE – 0x01 / 0x0C / 0x07DC4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63...
Upcoming SlideShare
Loading in …5
×

A brief introduction to reversing code with OllyDbg and other tools

1,202 views

Published on

Introducción a la ingeniería inversa en Windows. Tus primeros pasos prácticos y cómo no morir en el intento.

Published in: Technology
  • Be the first to comment

A brief introduction to reversing code with OllyDbg and other tools

  1. 1. A brief introduction to reversing code Longinos Recuero Bustos http://longinox.blogspot.com.es longinos.recuero.bustos@gmail.com @L0ngin0s4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  2. 2. definición Es el proceso para el descubrimiento de los principios tecnológicos de un dispositivo, objeto o sistema Necesidad Proceso de Producto o o problema Ingeniería solución Principios Proceso de Ing. Inversa Producto tecnológicos4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  3. 3. dominios  Ingeniería inversa del hardware  Ingeniería inversa del software4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  4. 4. Motivaciones / usos  Compatibilidad e Interoperabilidad  Espionaje: industrial, militar.  Documentación.  Auditorias de seguridad.  Eliminación de restricciones.  Análisis: forense, malware, ...  Académicos.  Curiosidad.4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  5. 5. requisitos4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  6. 6. Conocimientos  Arquitectura de computadores (x86, x64, ARM, ...)  Opcodes  Registros  Direccionamientos  Endianess  Interrupciones, ...  Programación (Assembler, C++, ...)  MOV AL, 61h ; Load AL with 97 decimal (61 hex)4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  7. 7. Conocimientos  Sistemas operativos:  Kernel  Anillos de privilegio  Subprocesos, Hilos  API  Mensajes ...4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  8. 8. Conocimientos  Estructura de los ficheros binarios:  PE (Portable and executable)  ELF (Executable and Linkable Format)  ...4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  9. 9. Conocimientos  Estructuras del SS.OO:  TIB o TEB (Thread Information Block)  PEB (Process Information Block)  IAT (Import Address Table)  TLS (Thread Local Storage)  ...4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  10. 10. herramientas  Descompiladores (Decompilers)  ILSpy, DJ Java Decompiler, ...  Desensambladores (Disassemblers)  IDA Pro, OllyDbg, ...  Depuradores (Debugguers)  IDA Pro, OllyDbg, ...  Editores PE  PEEditor, CCF Explorer Sute4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  11. 11. herramientas  Editores hexadecimales  Ultra Edit, HxD, ...  Dumps de memoria  LordPE Deluxe, ProcDump, ...  Monitorización  PortMon, Process Explorer, ...  Analizadores  RDG Packer Detector, PEiD, ...4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  12. 12. aproximaciones  Caja blanca  Análisis estático.  Caja negra  Análisis funcional.  Caja gris  Caja blanca + Caja negra.4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  13. 13. Learn by example Decompilación y análisis estático con ILSpy4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  14. 14. Ollydbg: Breve descripción  Desensamblador / depurador de 32-bits para ejecutables Microsoft Windows (.Exe, .Dll, ...)  Reconoce:  Rutinas  Procedimientos  Llamadas a las APIs  Interrupciones  Instrucciones  ...  Depura aplicaciones multiThread.  Parchea archivos ejecutables.4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  15. 15. Learn by example Desensamblado y análisis dinámico con OllyDbg4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  16. 16. Learn by example4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  17. 17. Learn by example4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  18. 18. Learn by example4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  19. 19. Conclusiones4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  20. 20. Conclusiones  No tengo talentos especiales, pero sí soy profundamente curioso. Albert Einstein  If a program runs, then it’s crackable  Métodos de protección: o Ofuscación o AntiDebug o AntiTracing o AntiDumping (Packing / Unpacking)  Nanomites (Armadillo)  Stolen Bytes (ASProtect)  Virtual Machines (Themida) o Criptograficos, ...  !Muchas horas de diversión!4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  21. 21. agradecimientos4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  22. 22. agradecimientos  A la organización de Navaja Negra  A sus patrocinadores  Muy especialmente a todos vosotros!!!4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  23. 23. ¿preguntas?4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65
  24. 24. The end ALBACETE – 0x01 / 0x0C / 0x07DC4E 61 76 61 6A 61 20 4E 65 67 72 61 20 43 6F 6E 66 65 72 65 6E 63 65 20 3A 3A 20 41 6C 62 61 63 65 74 65

×