Sunteți pe pagina 1din 10

INSTITUTO TECNOLÓGICO SUPERIOR

DE ALVARADO

Campus Lerdo de Tejada


TURNO:

Semiescolarizado

MODULO:

Agosto-Diciembre

CARRERA:

Ingeniería en Sistemas Computacionales

SEMESTRE:

Séptimo

MATERIA:

Lenguajes y Autómatas II

UNIDAD-nombre:

III- Optimización

TEMA:

Herramientas para el análisis de tipos de datos

PRODUCTO ACADÉMICO:

Investigación

NOMBRE DEL ALUMNO-NUMERO DE CONTROL


Israel Hernández Lopez - 156z0839

Lerdo de Tejada Ver. A 04 de Septiembre de 2018

ÍNDICE
Contenido

ÍNDICE................................................................................................................................ 2

INTRODUCCIÓN................................................................................................................ 3

1. HERRAMIENTAS PARA EL ANÁLISIS DE TIPO DE DATOS.......................................4

1.1. DEPURADORES..................................................................................................4

1.2. DESENSAMBLADOR...........................................................................................7

CONCLUSIÓN.................................................................................................................... 9

BIBLIOGRAFÍA.................................................................................................................10

INTRODUCCIÓN

2
Existen herramientas que permiten el análisis de los flujos de datos,
entre ellas tenemos los depuradores y desambladores. En la siguiente
investigación hablaremos sobre estas dos herramientas del análisis de todos asi
como también sus características.

1. HERRAMIENTAS PARA EL ANÁLISIS DE TIPO DE DATOS

3
1.1. DEPURADORES
El concepto depuración en informática se refiere al proceso de limpieza
que se realiza en un programa para identificar y corregir errores o problemas de
programación. Del inglés debugging que viene a ser la traducción literal de
eliminación de bichos (bugs), nombre con el que se conoce coloquialmente a los
errores de programación.

El código a ser examinado puede alternativamente estar corriendo en un


simulador de conjunto de instrucciones (ISS), una técnica que permite gran
potencia en su capacidad de detenerse cuando son encontradas condiciones
específicas pero será típicamente algo más lento que ejecutando el código
directamente en el apropiado procesador. Algunos depuradores ofrecen dos
modos de operación la simulación parcial o completa, para limitar este impacto.

Dado que con el paso del tiempo el software y los sistemas electrónicos
se van generando más complejos, se han ido desarrollando varias técnicas de
depuración para detectar anomalías, corregir funcionalidades y optimizar el código
fuente. Se dice que un programa se encuentra depurado cuando está libre de
errores. En el proceso de depuración se realiza un seguimiento en el
funcionamiento de dicho programa, observando los valores de las distintas
variables así como analizando también, los resultados obtenidos en las
operaciones.

Una vez depurado el programa, localizados los errores y subsanados se


procederá a depurar de nuevo hasta que el programa no dé error alguno, tanto en
tiempo de programación como en tiempo de ejecución. Al escribir programas es
habitual cometer errores, hay establecido un promedio de aproximadamente un
error cada 10 líneas de programa, minimizando así la posibilidad de que un
programa funcione correctamente a la primera.

Para simplificar la fase de depuración es conveniente utilizar


herramientas destinadas para este fin, la más habitual es el depurador o debugger.

4
A través de esta herramienta se interviene durante la ejecución de un programa
para saber cómo se lleva a cabo la ejecución hasta ese momento.

Si es un depurador de nivel de fuente o depurador simbólico,


comúnmente ahora visto en entornos de desarrollo integrados, cuando el
programa "se estrella" o alcanza una condición predefinida, la depuración
típicamente muestra la posición en el código original.

Si es un depurador de bajo nivel o un depurador de lenguaje de máquina,


muestra la línea en el fuente desensamblado (a menos que también tenga acceso
en línea al código fuente original y pueda exhibir la sección apropiada del código
del ensamblador o del compilador).

Un "estrellamiento" sucede cuando el programa no puede continuar


normalmente debido a un error de programación. Por ejemplo, el programa pudo
haber intentado usar una instrucción no disponible en la versión actual del CPU o
haber intentado tener acceso a memoria protegida o no disponible.

El debugger permite:

 La ejecución paso a paso de un programa.


 El establecimiento de puntos de detención.
 La examinación de las variables y objetos en el contenido.
 El enlazado de llamadas de procedimientos.
 Retomar la ejecución hasta un nuevo punto de detención.

Cuando no se dispone de un depurador se debe recurrir al proceso de


depuración manual colocando printin´s en puntos estratégicos del programa que
permitirán desplegar el contenido de las variables. Para que la depuración resulte
más sencilla hay que comenzar ejecutando el programa con pocos datos
incluyendo los que representen las condiciones de borde del programa. La
biblioteca del programa incluye mecanismos para registrar todos los mensajes que
aparecen en la pantalla.

5
Si un programa contiene errores no es que no vaya a ser eficiente,
sencillamente es que no funciona y por lo tanto no hace lo que se espera de él. La
depuración suele realizarse en dos partes:

 Localizar donde el sistema ha detectado el error.


 Desde el punto de error suele ser preciso retroceder hasta localizar qué es
lo que ha producido el programa.

Ejemplos de depuradores

 Visual DuxDebugger
 GNU Debugger (gdb)
 SoftICE
 OllyDbg
 Trw2000
 Ida Pro
 Cheat Engine

Ilustración 1. Visual DuxDebugger

1.2. DESENSAMBLADOR
Un desensamblador es un programa de computador que traduce el
lenguaje de máquina a lenguaje ensamblador, la operación inversa de la que hace
el ensamblador. Un desensamblador difiere de un decompilador, en que éste tiene

6
como objetivo un lenguaje de alto nivel en vez de al lenguaje ensamblador. La
salida de un desensamblador, el desensamblado, es a menudo formateada para la
legibilidad humana en vez de ser adecuada para la entrada a un ensamblador,
haciendo que éste sea principalmente una herramienta de ingeniería inversa.

El código fuente en lenguaje ensamblador generalmente permite el uso


de constantes y comentarios del programador. Estos son generalmente removidos,
por el ensamblador, del código ensamblado a código de máquina. De esta
manera, un desensamblador operando sobre el código de máquina, produciría el
desensamblado careciendo de estas constantes y comentarios; la salida
desensamblada se vuelve más difícil de ser interpretada por un humano que el
código fuente con comentarios original. .

El desensamblado no es una ciencia exacta: En las plataformas CISC


con instrucciones de ancho variable, o en presencia de código automodificable, es
posible para un simple programa tener dos o más desensamblados razonables.
Determinar qué instrucciones serían encontradas realmente durante una ejecución
del programa reduce al problema de parada probado no solucionable.

El programa desensamblador a utilizar, por trabajar con lenguaje


máquina y ensamblador, depende exclusivamente del microprocesador que
estamos usando (para que pueda reconocer las instrucciones del código binario),
de la arquitectura de la máquina y del sistema operativo en uso (no es lo mismo
Microsoft Windows que GNU/Linux).

El resultado de un desensamblador suele ser más difícil de interpretar


por un humano que el código fuente original. Además, sus resultados no siempre
son exactos.

Los desensambladores suelen emplearse en la ingeniería inversa de las


aplicaciones. Por ejemplo, muchos crackers emplean desensambladores para
crear los keygens de ciertas aplicaciones.

7
Desensambladores para Windows

Por conveniencia, separaremos lo desensambladores Windows en 2 categorias:


Herramientas Comerciales (que cuestan dinero), y Herramientas Gratuitas (que
son gratis y/o libres).

Herramientas Comerciales:

 IDA Pro
 PE Explorer
 W32DASM

Herramientas Gratuitas:

 IDA
 IDA Pro Freeware
 IDA Pro Freeware
 BORG
Disassembler
 HT Editor
 diStorm64

Ilustración 2. IDA Pro Corriendo

CONCLUSIÓN

Un depurador, es un programa usado para probar y depurar los errores


de otros programas en cambio un desensamblador es un programa que el
lenguaje maquina a lenguaje ensamblador es decir la una operación inversa.

8
BIBLIOGRAFÍA

http://itpn.mx/recursosisc/7semestre/leguajesyautomatas2/Unidad%20III.pdf

https://es.wikipedia.org/wiki/Depurador

http://nochesdecode.com.ar/2012/01/desensambladores-para-ingenieria-inversa/

9
10

S-ar putea să vă placă și