A brief introduction to reversing code with OllyDbg and other tools
1. A brief introduction to reversing code
Longinos Recuero Bustos
http://longinox.blogspot.com.es
longinos.recuero.bustos@gmail.com
@L0ngin0s
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
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ógicos
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
3. dominios
Ingeniería inversa del hardware
Ingeniería inversa del software
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
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. requisitos
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. Learn by example
Decompilación y análisis estático con
ILSpy
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
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. Learn by example
Desensamblado y análisis dinámico
con OllyDbg
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
16. Learn by example
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
17. Learn by example
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
18. Learn by example
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
19. Conclusiones
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
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. agradecimientos
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
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. ¿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. The end
ALBACETE – 0x01 / 0x0C / 0x07DC
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