Deburgging in Python
Que es un debugger?
Es un programa cuyo objetivo es analizar algn programa. u Objetivo Principal Encontrar errores(bugs) en los programas. Pero se puede usar tambin para entender el comportamiento e cuando no se tiene el cdigo fuente. o
Deburgging in Python
Que es un debugger?
Es un programa cuyo objetivo es analizar algn programa. u Objetivo Principal Encontrar errores(bugs) en los programas. Pero se puede usar tambin para entender el comportamiento e cuando no se tiene el cdigo fuente. o
Deburgging in Python
Que es un debugger?
Es un programa cuyo objetivo es analizar algn programa. u Objetivo Principal Encontrar errores(bugs) en los programas. Pero se puede usar tambin para entender el comportamiento e cuando no se tiene el cdigo fuente. o
Deburgging in Python
Funciones Principales
Deburgging in Python
Ejemplos
Deburgging in Python
La idea fu entender lo que ocurre a bajo nivel y entender la e magia oscura que hay por detras de un loop de debug. La intencin fue meramente de aprendizaje, no se trata de o hacer un debugger completo, para eso hay gente ya haciendolo por mi.
Deburgging in Python
La idea fu entender lo que ocurre a bajo nivel y entender la e magia oscura que hay por detras de un loop de debug. La intencin fue meramente de aprendizaje, no se trata de o hacer un debugger completo, para eso hay gente ya haciendolo por mi.
Deburgging in Python
La idea fu entender lo que ocurre a bajo nivel y entender la e magia oscura que hay por detras de un loop de debug. La intencin fue meramente de aprendizaje, no se trata de o hacer un debugger completo, para eso hay gente ya haciendolo por mi.
Deburgging in Python
Que hicimos?
Deburgging in Python
Ser minimalista y autocontenido Detectar cualquier crash Soportar timeout Soportar keystrokes Backup de archivos y registros.
Deburgging in Python
Ser minimalista y autocontenido Detectar cualquier crash Soportar timeout Soportar keystrokes Backup de archivos y registros.
Deburgging in Python
Ser minimalista y autocontenido Detectar cualquier crash Soportar timeout Soportar keystrokes Backup de archivos y registros.
Deburgging in Python
Ser minimalista y autocontenido Detectar cualquier crash Soportar timeout Soportar keystrokes Backup de archivos y registros.
Deburgging in Python
Ser minimalista y autocontenido Detectar cualquier crash Soportar timeout Soportar keystrokes Backup de archivos y registros.
Deburgging in Python
Dependencias
Deburgging in Python
Dependencias
Deburgging in Python
Ctypes
Es una foreign function library. Funciona como una interfaz con las dlls. Nos permite crear estructuras y uniones como las de C. A nosotros nos permitir llamar funciones como a kernel32.CreateProcess y denir las estructuras necesarias para llamarlas.
Deburgging in Python
Ctypes
Es una foreign function library. Funciona como una interfaz con las dlls. Nos permite crear estructuras y uniones como las de C. A nosotros nos permitir llamar funciones como a kernel32.CreateProcess y denir las estructuras necesarias para llamarlas.
Deburgging in Python
Ctypes
Es una foreign function library. Funciona como una interfaz con las dlls. Nos permite crear estructuras y uniones como las de C. A nosotros nos permitir llamar funciones como a kernel32.CreateProcess y denir las estructuras necesarias para llamarlas.
Deburgging in Python
Deniendo estructuras
La signatura de CreateProcess es:
Deburgging in Python
Deniendo estructuras
C++ En python con Ctypes
130-100
Deburgging in Python
Deniendo estructuras
C++ En python con Ctypes
130-100
Deburgging in Python
Deburgging in Python
Debug Event Posibles eventos Excepciones Eventos CREATE PROCESS EXIT PROCESS CREATE THREAD EXIT THREAD LOAD DLL RIP OUTPUT UNLOAD DLL EXCEPTION
Deburgging in Python
Debug Event Posibles eventos Excepciones Excepciones ACCESS VIOLATION ARRAY BOUNDS EXCEEDED BREAKPOINT DATATYPE MISALIGNMENT ILLEGAL INSTRUCTION IN PAGE ERROR NONCONTINUABLE PRIV INSTRUCTION STACK OVERFLOW
Deburgging in Python
DEMO!
Deburgging in Python
Algo ms? a
Deburgging in Python
Surgi una idea brillante. o Encontrar el crash m nimo basado en un crash ya existente.
Deburgging in Python
OTRA DEMO!
Deburgging in Python
Debilidades
Necesita que el crash sea fabricado de un archivo que no crashee (normal) El crash y el normal deben tener el mismo tamao. n
Deburgging in Python
Debilidades
Necesita que el crash sea fabricado de un archivo que no crashee (normal) El crash y el normal deben tener el mismo tamao. n
Deburgging in Python
Preguntas?
Deburgging in Python
GRACIAS JORGE!
Deburgging in Python