2. DITools

Como ya se ha comentado, DITools es un software desarrollado por el CEPBA que implementa un mecanismo de interposición dinámica de código orientado a redirigir las llamadas a funciones entre Dynamic Shared Objects o DSO's.

Se presenta como un conjunto de objetos ELF que se deben cargar, justo antes de comenzar la ejecución del programa principal, en el espacio de ejecución de la aplicación que se desea instrumentar.

Una vez instalado en el entorno de ejecución de la aplicación, DITools toma el control e instala un conjunto de interposiciones contenidas en unos ficheros que contienen "comandos de interposición de código".

DITools no decide el código interpuesto, de eso se encarga la aplicación de instrumentación construida sobre él. Por lo tanto, una vez instaladas estas interposiciones, DITools no vuelve a tomar el control hasta la finalización del programa, momento en que cierra el programa de instrumentación, desinstala las interposiciones y finaliza la ejecución.

El objetivo original de este proyecto era portar DITools a GNU/Linux sobre INTEL® 386, y posteriormente decidir si portarlo a otras arquitecturas. Debido a que DITools está muy ligado a Irix sobre MIPS® y su diseño ya no puede da mucho más de sí sin reestructurarlo seriamente, se decidió reescribir este programa de nuevo.

Aún así se estudió a fondo este programa para extraer de él toda la experiencia posible y no repetir las limitaciones y errores de DITools. Se discute más a fondo sobre este programa en la sección Descripción y estructura de DITools del capítulo Introducción al ELF.