Download Diapositiva 1 - universitariouhv

Document related concepts
no text concepts found
Transcript
UNIDAD IV
Depuradores (Debuggers)
L.I. OSCAR RAMÍREZ CORTÉS
SISTEMAS DE PROGRAMACIÓN
Qué es un:
Bug – Agujero - Bicho?
•
Defecto en un software no descubierto.
•
El proceso para corregirlos se llama debugging.
•
El debugger de programas ya compilados es conocido como ingeniería
inversa.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Qué es un:
Depurador - Debugger?
Programa con el que podemos ir ejecutando paso a paso las
instrucciones de un programa, con la finalidad de darnos
cuenta qué es lo que falla y corregirlo.
Aplicación o herramienta que permite la ejecución controlada
de un programa o un código, para seguir cada instrucción
ejecutada y localizar así bugs, códigos de protección, etc.
Con un depurador es posible: poner un punto de
interrupción, leer y modificar registros, empezar la ejecución
del programa, ejecutar un solo paso manualmente, ejecutar
una secuencia de pasos mediante simulaciones, evaluar y
solucionar problemas ocultos.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Algunos Ejemplos
De Herramientas y Programas
• DBG (debugger de PHP)
• DEBUG DOS Command
• Eclipse
• GoBug symbolic (debugger para Windows)
• GNU Debugger (GDB)
• Java Platform Debugger Architecture
• JSwat, open-source Java debugger
• Turbo Debugger
• WinDbg
• CCleaner
• VB Watch Debugger for Visual Basic 6.0
• Visual Studio Debugger
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
DEBUGGERS
Ambiente Visual y MSDOS
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Entonces el
Debugging es?
Dados ciertos indicios tenemos que encontrar los errores en nuestros programas.
Si sabemos qué tipos de situaciones producen los errores en el software,
tenemos más probabilidades de detectar y corregir los problemas.
«Proceso metodológico para encontrar y reducir bugs (errores) o defectos en un
programa incluyendo piezas de hardware.»
Podemos considerar dos tipos de depuración: la preventiva (para el caso de
desarrollar software) y la correctiva (con programas instalados).
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Depuración
Preventiva (Programación)
• Lectura de lo codificado.
• Casos de prueba.
• Aislar errores.
• Rastreo.
• Sesiones de evaluación
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Reacciones ante el
Proceso de Depuración…
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Qué es un
Breakpoint – punto de ruptura?
El colocar un breakpoint en una
línea de código implica que la
ejecución del programa se detendrá
al llegar a esa línea.
Está ligado a un punto de la
ejecución.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Depuración
Correctiva (Post-Instalación)
• Reconocer que ese error existe (un programa
puede contener errores que jamás serán
detectados).
• Aislar la fuente del error.
• Identificar la causa del error.
• Determinar una solución para el error.
• Aplicar la solución (software de sistemas o utilería).
• Probar el programa.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Software de sistemas
O Utilerías
WinDbg
Microsoft pone a disposición las Debugging Tools for Windows, una suite de
aplicaciones y documentación destinadas a la depuración en sistemas
Windows. WinDbg es una de éstas herramientas: concretamente es un
depurador que nos permite adjuntarnos a procesos de usuario y al kernel del
sistema operativo.
Permite tanto la depuración en vivo (live debugging), que consiste en
adjuntarse a un proceso que está en ejecución, como la depuración
postmortem, mediante el análisis de volcados de memoria generados por la
aplicación o el sistema operativo en momentos determinados.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Software de sistemas
O Utilerías Complejas
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Software de sistemas
O Utilerías de Interfaz Amigable
CCleaner
«Es una aplicación gratuita, de código cerrado (software
no libre), que tiene como propósito mejorar el rendimiento
de cualquier equipo que lo ejecute mediante la
eliminación de archivos innecesarios, entradas inválidas
del Registro de Windows con la posibilidad de desinstalar
programas desde su interfaz al igual que inhabilitar la
ejecución de aplicaciones en el inicio del sistema con el
fin de mejorar la velocidad de arranque del sistema
operativo.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Y qué son los
Anti-Debuggers?
«Un debugger es un programa que puede servir para
desensamblar a otro programa y así ver como está hecho
por dentro.
Los virus usan técnicas para evitar ser desensamblados y
así impedir su análisis para la fabricación del antivirus
correspondiente. El Anti-debug es un conjunto de técnicas
que los virus emplean para impedir ser investigados.
Los virus son anti-debuggers que acceden a los códigos
traducidos de archivos y programas para autoreproducirse
y dañarlos.»
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Tecnicas utilizadas por
los Anti-Debuggers
TECNICAS STEALTH
Falsificación de archivos y de interrupciones.
TUNNELING
Es la técnica que utilizan tanto virus como antivirus para saltarse todas las
rutinas al servicio de una interrupción y tener así un control directo sobre dicha
interrupción.
POLIMORFISMO
Se utiliza la encriptación de su código para que de esta forma ningún antivirus
lo pueda detectar.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Por su atención
Gracias