Está en la página 1de 4

INSTITUTO TECNOLGICO DE SAN LUIS POTOS

Sistemas Computacionales Tpicos Avanzados de Programacin 14:00 15:00

DESENSAMBLADOR Y OFUSCACIN
Farfn Luna Rubn Miguel Gonzlez Garca Humberto Galicia Rodrguez Kenya Sharon Yakin

DESENSAMBLADOR
Un desensamblador es un programa de computadora que traduce el lenguaje de mquina a lenguaje ensamblador, la operacin inversa de la que hace el ensamblador. Un desensamblador difiere de un descompilador, en que ste apunta a 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 ingeniera inversa. El cdigo fuente en lenguaje ensamblador generalmente permite el uso de constantes y comentarios del programador. stos son generalmente removidos, por el ensamblador, del cdigo ensamblado a cdigo de mquina. De esta manera, un desensamblador operando sobre el cdigo de mquina, producira el desensamblado careciendo de estas constantes y comentarios; la salida desensamblada se vuelve ms difcil de ser interpretada por un humano que el cdigo fuente con comentarios original. Algunos desensambladores hacen uso de la informacin de depuracin simblica presente en los archivos objeto tales como el ELF. En una sesin interactiva, el Interactive Disassembler permite al usuario humano colocar smbolos mnemnicos para valores o regiones de cdigo: la intuicin humana aplicada al proceso de desensamblado a menudo va en paralelo con la creatividad humana en el proceso de la escritura del cdigo. El desensamblado no es una ciencia exacta: En las plataformas CISC con instrucciones de ancho variable, o en presencia de cdigo automodificable, es posible para un simple programa tener dos o ms desensamblados razonables. Determinar qu instrucciones seran encontradas realmente durante una corrida del programa reduce al problema de parada probado no solucionable. El programa desensamblador a utilizar, por trabajar con lenguaje mquina y ensamblador, depende exclusivamente del microprocesador que estamos usando, de la arquitectura de la mquina y del sistema operativo en uso. Los desensambladores son ampliamente utilizados para crackear programas y para realizar ingeniera inversa. Tambin son utilizados por desarrolladores de software, investigadores o estudiantes. Programas desensambladores Cualquier depurador interactivo incluir una alguna forma de ver el desensamblado del programa que est siendo depurado. A menudo, la misma herramienta de desensamblado ser empaquetada como un desensamblador

independiente distribuido junto con el depurador. Por ejemplo, el objdump, parte del GNU Binutils, est relacionado con el depurador interactivo gdb. Interactive Disassembler (IDA) ILDASM es una herramienta contenida en el SDK del .NET Framework. Puede ser usado para desensamblar los archivos PE conteniento cdigo Common Intermediate Language OllyDbg es un depurador analizador ensamblador de 32 bits SIMON, un probador/depurador/animador con desensamblador integrado para el Ensamblador, COBOL y PL/1 Texe es un desensambladorde 32 bits y un analizador de archivos PE de Windows libre. unPIC es un desensamblador para los microcontroladores PIC

OFUSCACIN
En computacin, la ofuscacin se refiere al acto deliberado de realizar un cambio no destructivo, ya sea en el cdigo fuente de un programa informtico o cdigo mquina cuando el programa est en forma compilada o binaria, con el fin de que no sea fcil de entender o leer. En Internet, la ofuscacin refiere a crear una publicacin o formar parte de Ofuscados. El cdigo ofuscado es aqul cdigo que, aunque se tiene el cdigo fuente, ha sido enrevesado especficamente para ocultar su funcionalidad (hacerlo ininteligible). La ofuscacin binaria se realiza habitualmente para impedir o hacer ms difcil los intentos de ingeniera inversa y desensamblado que tienen la intencin de obtener una forma de cdigo fuente cercana a la forma original. Como un efecto lateral, la ofuscacin, en ocasiones, hace que los programas resultantes sean ms pequeos (aunque puede hacer que los programas sean ms grandes en otros casos). Algunos tienden ms a la ofuscacin que otros. C, C++ y Perl son los ms citados como fcilmente ofuscables. Las macros de preprocesador son usadas a menudo para crear cdigo complicado de leer enmascarando la gramtica y sintaxis estndar del lenguaje del cuerpo principal de cdigo. Aparte de los lenguajes ms conocidos, existen lenguajes de programacin esotricos. Adems, tambin se puede buscar que el cdigo fuente resulte una

obra de ascii art. Existen otros programas ofuscados llamados quine que al ejecutarse la salida debe ser el cdigo fuente del programa. Programas de ofuscacin Tambin hay programas ofuscadores que pueden actuar sobre el cdigo fuente, cdigo objeto o ambos para dificultar la ingeniera inversa. La aplicacin GPL ProGuard que permite, adems de ofuscar nuestras clases Java, optimizarlas, comprimirlas y aadirles informacin de pre verificacin, de forma que la carga de las clases en Java SE 6 y Java ME 6 sea ms rpida y ms eficiente. Eazfuscator.Net Jasob ofrece un ejemplo del resultado de ofuscar cierto cdigo JavaScript. Mangle-It C++ Morpher oficialmente admite idiomas son C / C + + Obj-C/Obj-C++, aunque podemos aadir soporte para cualquier cosa que compila a LLVM IR si hay tal necesidad.

CONCLUSIN
Los desensambladores nos ayudan a traducir el lenguaje de mquina a lenguaje ensamblador, la operacin inversa de la que hace el 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. El programa desensamblador trabaja con lenguaje mquina y ensamblador, depende exclusivamente del microprocesador que estamos usando, de la arquitectura de la mquina y del sistema operativo en uso. Los desensambladores son ampliamente utilizados para crackear programas y para realizar ingeniera inversa. Tambin son utilizados por desarrolladores de software, investigadores o estudiantes. La ofuscacin se refiere al acto deliberado de realizar un cambio no destructivo, ya sea en el cdigo fuente de un programa informtico o cdigo mquina cuando el programa est en forma compilada o binaria, con el fin de que no sea fcil de entender o leer. La ofuscacin binaria se realiza habitualmente para impedir o hacer ms difcil los intentos de ingeniera inversa y desensamblado que tienen la intencin de obtener una forma de cdigo fuente cercana a la forma original.