A brief introduction to reversing code with OllyDbg and other tools

985 views
883 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
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
985
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×