000007141 001__ 7141 000007141 005__ 20150325135934.0 000007141 037__ $$aTAZ-PFC-2012-187 000007141 041__ $$aspa 000007141 1001_ $$aArtal Lozano, Juan Antonio 000007141 24500 $$aEstudio comparativo de frameworks de instrumentación dinámica de ejecutables 000007141 260__ $$aZaragoza$$bUniversidad de Zaragoza$$c2012 000007141 506__ $$aby-nc-sa$$bCreative Commons$$c3.0$$uhttp://creativecommons.org/licenses/by-nc-sa/3.0/ 000007141 520__ $$aLa Instrumentación Dinámica de Ejecutables (Dynamic Binary Instrumentation, DBI) es una técnica muy potente que permite analizar el comportamiento, en tiempo de ejecución, de cualquier aplicación. DBI se puede usar, por ejemplo, para contar el número de instrucciones que ejecuta o contar todas las transferencias (lectura y/o escritura) a memoria que realiza un determinado programa. Un framework de DBI es una plataforma software que incluye programas, librerías, documentación y una API para manipulación de instrucciones en tiempo de ejecución. Existen diferentes frameworks de DBI (p.e., Pin, Valgrind, DynamoRIO, Paradyn/Dyninst), que proporcionan APIs muy extensas para que cada ingeniero pueda desarrollar sus propias herramientas de análisis dinámico, llamadas herramientas DBA (Dynamic Binary Analysis). Las herramientas DBA permiten analizar, generar optimizaciones y monitorizar el comportamiento de programas. El objetivo de este PFC es realizar un estudio comparativo centrado a nivel de impacto en rendimiento (performance) de diferentes frameworks de DBI. Es decir, se comprobará el rendimiento de una aplicación ejecutada de forma nativa, sin instrumentar, y se comparará con esta misma aplicación instrumentada por herramientas programadas bajo diferentes frameworks de DBI. De esta forma se obtiene el impacto en rendimiento de cada uno de los frameworks. Para poder llevar a cabo este estudio, se han seleccionado un conjunto de aplicaciones para crear un benchmark, que nos dará información de rendimiento de cada framework de DBI. Además, se pretende comparar cada framework de DBI atendiendo a las siguientes características: plataformas y tipos de ejecutables que aceptan, necesidad de disponer del código fuente, API proporcionada, facilidad de programación de herramientas DBA, licencia/coste y la posibilidad de vincular a un proceso en ejecución. 000007141 521__ $$aIngeniero en Informática 000007141 540__ $$aDerechos regulados por licencia Creative Commons 000007141 6531_ $$ainstrumentación dinámica 000007141 6531_ $$adbi 000007141 6531_ $$abenchmark 000007141 6531_ $$arendimiento 000007141 6531_ $$apin 000007141 6531_ $$avalgrind 000007141 6531_ $$adynamorio 000007141 700__ $$aRodríguez Fernández, Ricardo J.$$edir. 000007141 7102_ $$aUniversidad de Zaragoza$$bInformática e Ingeniería de Sistemas$$cLenguajes y Sistemas Informáticos 000007141 7202_ $$aMerseguer Hernáiz, José Javier$$eponente 000007141 8560_ $$f424787@celes.unizar.es 000007141 8564_ $$s423909$$uhttps://zaguan.unizar.es/record/7141/files/TAZ-PFC-2012-187.pdf$$yMemoria (spa) 000007141 909CO $$ooai:zaguan.unizar.es:7141$$pdriver$$pproyectos-fin-carrera 000007141 950__ $$a 000007141 980__ $$aTAZ$$bPFC$$cEINA