Original article: http://www.backerstreet.com/rec/rec.htm

REC Studio es un decompilador interactivo.
Funciona con Windows, Linux, Mac OS X o archivo ejecutable, así como intenta de producir una representación similar a C del código y los datos utilizados para la generación del archivo ejecutable.
Está diseñado para leer los archivos producidos por muchos objetivos diferentes, y fue recopilado en varios sistemas de host.
REC Studio 4 es una reescritura completa del descompilador REC original. Utiliza técnicas de análisis más potentes como la Single Static Assignment parcial (SSA), permite la carga de los archivos de Mac OS X y soporta los binarios de 32 y 64 bits.
Aunque el programa aún está en la fase de desarrollo, se ha llegado a una etapa que lo hace que sea más útil que el antiguo Rec Studio 2.
Las páginas sobre Rec Studio 2 están aquí.

Características
Como hemos mencionado antes, Rec Estudio 4 aún está en desarrollo. Las características independientes más específicas se han completado, entre ellos encontramos lo siguiente:
• Multihost: Rec Studio corre bajo Windows XP / Vista / 7, Ubuntu Linux, Mac OS X.
• Apoyo a la información simbólica utilizando Dwarf 2 y el reconocimiento parcial de formato PDB de Microsoft.
• C ++ se reconoce de forma parcial: los nombres alterados generados por gcc están recompuestos, así como se pega la herencia descrita en Dwarf2. Sin embargo, C ++ es un lenguaje muy amplio y difícil, por lo que algunas características como plantillas son pocos probables que se apoyen alguna vez.
• Tipos y definiciones prototipas de función se pueden especificar en archivos de texto. Algunas Posix y API de Windows estándar se proporcionan en el paquete de Rec Studio.
• Se apoya la interactividad, tiene la definición de secciones limitada y las etiquetas y los puntos de entrada de la función. Será necesario mejorarlo para apoyar la definición en el programa de tipos y parámetros de la función.
Esta tabla muestra las características específicas de meta que se han implementado hasta el momento presente:

Feature x86 (ia32) x86_64 Mips PowerPC mc68k ARM
Disassembler Done Done Done Done Done Planned
PE COFF loader Done Done n/a n/a n/a n/a
ELF loader Done Done Done Done Done Planned
COFF loader Done n/a n/a n/a Done n/a
Mac OS X loader Done Done n/a Planned n/a Planned
Dwarf2 symbolic information Done Done Done Done n/a Planned
COFF symbolic information Planned n/a n/a n/a Planned n/a
Calling conventions In progress In progress In progress Planned Planned Planned
32 and 64 bits In progress In progress n/a n/a n/a n/a
Floating-point Planned Planned n/a n/a n/a n/a
Windows Debugger In progress Planned n/a n/a n/a n/a
Gdb Debugger In progress In progress n/a n/a n/a n/a


Los recursos de REC no son de dominio público.
Aunque el compilador REC puede leer los archivos ejecutables deWin32 (también conocido como PE) producidos por Visual C ++ o Visual Basic 5, aún existen limitaciones en la salida producida. REC intentará utilizar cualquier información que está presente en la tabla de símbolos .EXE. Si el archivo .EXE fue compilado sin información de depuración, si se ha utilizado un archivo de base de datos de programa (PDB) o en formato Codeview (C7), o en caso si se ha habilitado la opción de optimización del compilador, la salida producida no será buena. Por otra parte, los archivos ejecutables de Visual Basic 5 son una mezcla de datos del código Subroutine y los datos de Form. Es casi imposible que REC determina cuál es cuál. La única opción queda utilizar un archivo .cmd y especificar manualmente qué área es el código y cuya área se refiere a los datos.
En la práctica, sólo los archivos ejecutables de C producen una salida decompilada significativa.

Referencias
Otros descompiladores están disponibles de varias fuentes. Mira mi página de ingeniería inversa para obtener una lista completa.
Sorprendentemente, la arquitectura interna de un descompilador es muy similar a la de un compilador. La literatura de alta calidad existe para ambos. La página de Design Notes se dispone de información sobre los problemas que se enfrenta un escritor decompilador cuando se trata de descompilación de los programas más complejos que las pruebas de unidades simples.
La página tiene enlaces de descompilación y documentación relacionados con descompiladores en general.
La tesis doctoral de Mike van Emmerik avanzó significativamente el campo de la descompilación por exponer soluciones para los problemas fundamentales en la descompilación de programas binarios.
La tesis doctoral de técnicas de compilación reversas escrita por Cristina Cifuentes describe en detalle la teoría y la aplicación de un decompilador dcc para 8086 programas de DOS.
La página de Wotsit proporciona enlaces a las especificaciones de formatos de archivo como COFF y ELF.
Algunos conceptos relacionados con el análisis del código se tratan en las páginas de REference Debugger.
Otros libros fundamentales que he utilizado durante el desarrollo son:
• "Compilers - Principles, Techniques and Tools", Aho, Sethi, Ullman, 1986 Addison-Wesley Publishing Co. ISBN 0-201-10088-6.
• "Advanced Compiler Design & Implementation", Steven Muchnick, 1997 Morgan Kaufmann Publishers, ISBN 1-55860-320-4.
• "How debuggers work - Algorithms, Data Structures, and Architecture", Jonathan Rosemberg, 1996 John Wiley and Sons, ISBN 0-471-14966-7.

Los desensambladores utilizados en REC fueron tomados de diversas fuentes. El archivo copywrite tiene una lista de créditos para cada uno de los desensambladores utilizados en REC. El resto del código fue escrito por mí mismo durante los últimos 25 años. Voy a seguir mejorando el compilador REC en mi tiempo libre, pero no puedo garantizarlos que podré corregir errores o añadir nuevas características, procesadores o hosts.

Renuncia
Hay amplios debates en la legalidad de la descompilación. Las herramientas de este decompilador han estado disponibles para una variedad de plataformas por mucho tiempo. Los descompiladores, junto con otras herramientas tales como depuradores, editores binarios, etc. deben ser utilizadas cuando el propietario de un programa tiene el derecho legal de realizar ingeniería inversa del programa. Se ha establecido por los tribunales de Estados Unidos y otros países que es legal usar los descompiladores bajo la cláusula de uso razonable de la ley de derechos de autor.
Para saber los casos cuando es legal utilizar un descompilador, debe leer el texto:
• Sega Enterprises LTD v. Accolade, Inc.
• Atari Games Corp. v. Nintendo of America, Inc.

También le recomendamos leer una discusión sobre la legalidad del uso de un emulador para la ejecución de un programa binario en un host distinto.
Backer Street Software no es compatible con el uso de herramientas de ingeniería inversa con fines ilegales.
Copyright © 1997 - 2015 Software Backer Street - Todos los derechos reservados.

Historia:
9 de marzo de 2011 Versión 4.0 Beta: pasó la reescritura completa del decompilador para poder soportar las arquitecturas más modernas (archivos Macho, x86_64).

2 de julio 2007 Versión 2.2: descompilación fijo de binarios a través de archivos .cmd. Parcialmente han implementado el registro constante de propagación. Han corregido muchos errores 68k.

6 de mayo 2007 Versión 2.1: Han añadido trasero + opción de proceso por lotes para RecStudio; el uso de ndisasm para i386; tiene un mejor aislamiento de los datos de importación para binarios de Windows

20 de Septiembre 2005 Versión 2.0d: Han corregido más errores para 68k

6 de Septiembre 2005 Versión 2.0c: Soporte para los archivos .o de Linux y el apoyo mejorado para 68k

15 de Agosto 2005 Versión 2.0b: lanzamiento de mantenimiento. Soporte para binarios de Watcom-compiled y cadenas anchas

1 de Agosto 2005 Versión 2.0a: lanzamiento de mantenimiento. Se han resuelto los bloqueos y han mejorado la calidad con los ejecutables de Windows

30 de Mayo 2005 Versión 2.0: GUI de Windows y descompilación interactiva

19 de Septiembre 2000 Versión 1.6: Se ha añadido el soporte para SPARC.

16 de Marzo 1999 Versión 1.5d: la detección antigua interruptora (). Han añadido el soporte para big-endian MIPS.

6 de Marzo 1999 Versión 1.5: El apoyo a la información de importación / exportación de archivos de Win95; desensambladores de GNU fueron reemplazados con un software gratuito; han corregido muchos bloqueos

22 de Noviembre 1998 Versión 1.4a: han corregido el bucle sin fin que ocurría durante la descompilación de archivos Win95; han añadido los archivos de Windows

15 de Noviembre 1998 Versión 1.4: Se ha añadido la capacidad del navegador en modo interactivo, y la generación de la página HTML

30 de Julio 1998 Versión 1.3b: Mantenimiento: han fijado los accidentes y diversos problemas en 68k.

15 de Febrero 1998 Versión 1.3: Han añadido Motorola 68000 y los objetivos de PowerPC.

7 de Diciembre 1997 Versión 1.2: han fijado la interfaz de usuario de PC. Desde ese momento podemos cargar los ejecutables del DOS de 16 bits. Han hecho más correcciones de errores.

26 de Octubre 1997 Versión 1.1: el soporte multi-objetivo (386 + R3000), la carga de los archivos ELF y PE, fueron corregidos varios errores.

6 Octubre de 1997 han trasladado a la plataforma de Windows en modo consola (recr4kpc.zip), así como para SunOS (recr4ks4.tar.gz)

20 Septiembre1997 fue creada para hacer el archivo recr4kl.zip disponible.

Página principal de CG.
Última actualización: 22 de Noviembre 2015

Home | SEO Hunter | Photo-news from around the world