[en] Malware is something that have been present from the very beginning of computing. Every day thousands of new cases are detected, which affects users all over the world. Because of this, it is necessary to stop them. These methods are evolving while malware does it. To achieve our goal, perform a malware analysis using emulators, the first thing we will see in this work is the history about malware, how they are nowadays and how they will be in the future. With this, we introduce the antivirus, as they are today and what are the techniques used to protect us, studying if they are effective or not. One of the objectives that we try to achieve is to study a new way of analysing malware, using the technique of behaviour analysis. This is not a new technology, but it can be very useful if we add emulators to it. An emulator allows us to execute programs or code on a platform other than the one that was originally designed or on the same platform, in such a way that it returns the result of all the instructions executed by the CPU for that program. In this work we will emulate x86 architecture programs over the same architecture, analysing what is the result of these executions. We will work with errors like invalid memory accesses, infinite loops (and how we detect them), and also, shellcodes, assembly language codes that are injected into the execution of a program in order for the processor to perform those operations. After this, we will determine if this type of tool is useful or not and how it could be used in the future.

[es] El malware es un concepto presente desde el nacimiento mismo de la informática. Cada día se detectan miles de casos nuevos, que afectan a usuarios de todo el mundo. Por esto, es necesario hacerles frente del algún modo, evolucionando estos métodos a la vez que lo hace el malware. Para lograr nuestro objetivo, realizar un análisis de malware utilizando emuladores, lo primero que veremos en este trabajo es la historia sobre los programas malignos, su estado actual y su futuro. Con ello, introducimos el tema de los antivirus, como están hoy en día y cuáles son las técnicas que se usan para protegernos, estudiando si son eficaces o no. Uno de los objetivos que pretendemos alcanzar, es estudiar una nueva manera de analizar el malware, utilizando la técnica de análisis del comportamiento. Esta no es una tecnología nueva, pero que puede resultar muy útil si le añadimos los emuladores a ella. Un emulador nos permite ejecutar programas o código en una plataforma distinta a la que fue diseñada originariamente o sobre esa misma, de tal manera que nos devuelve el resultado de todas las instrucciones ejecutadas por la CPU para ese programa. En este trabajo emularemos programas de la arquitectura x86 sobre esta misma, analizando cual es el resultado de dicha ejecución. Tocaremos errores como accesos a memoria no válidos, bucles infinitos (y como los detectamos), y también los shellcodes, códigos en lenguaje ensamblador que se inyectan en la ejecución de un programa con el fin de que el procesador realice dichas operaciones. Tras esto, determinaremos si resulta útil o no este tipo de herramientas y como se podría utilizar en un futuro.