Un descompilador toma como entrada un archivo ejecutable, y los intentos de crear un alto nivel, compilable archivo de origen, posiblemente incluso mantenible que hace lo mismo.
Por lo tanto, es lo contrario de un compilador, que toma un archivo de origen y hace un ejecutable. Sin embargo, un descompilador en general no intenta revertir todas las acciones de la decompilador, sino que transforma el programa de entrada varias veces hasta que el resultado es el código fuente de alto nivel. Por tanto, no volverá a crear el archivo fuente original; Probablemente nada como él.
No importa si el archivo ejecutable símbolos o no, o se compiló a partir de cualquier idioma en particular. (Sin embargo, lenguajes declarativos como ML no se consideran.)
La intención es crear un descompilador retargetable (es decir, uno que puede descompilar diferentes tipos de archivos de código de máquina con un esfuerzo modesto, por ejemplo X86-windows, sparc-Solaris, etc). También se pretende que sea altamente modular, de modo que diferentes partes de la decompilador pueden ser reemplazados con módulos experimentales. Fue pensado para convertirse eventualmente interactiva, a la IDA Pro, porque algunas cosas (no sólo los nombres de variables y observaciones, las cuales, evidentemente, muy importante) requiere la intervención de expertos. Si la interactividad pertenece en el descompilador o en una herramienta independiente sigue siendo poco clara.
Al transformar la semántica de las instrucciones individuales, y el uso de técnicas de gran alcance, tales como el análisis estático único flujo de datos de misiones, Boomerang debe ser (en gran parte) independiente del comportamiento exacto del compilador que pasó a ser utilizado. Optimización no debería afectar a los resultados. Por lo tanto, el objetivo es un descompilador general.
Limitaciones:
· En caso de que quiera probar Boomerang, ya que es como un descompilador (en lugar de experimentar con ella, o mejorarla), ser conscientes de sus limitaciones severas. A principios de 2004, Boomerang sólo se descompilar X86 (Linux / X86 o Windows PE), SPARC (Solaris o presumiblemente Linux / SPARC), o Power PC programas (Mac OS / X Linux / PPC o). En particular, tenga en cuenta que no va a descompilar programas de DOS o NE (Windows 3.1). La adición de otro procesador es un (varios meses) gran empresa.
· Es sólo generará C, no C ++. Será descompilar C ++ programas de curso, (y cualquier tipo de programas, incluyendo el ensamblador). Usted puede ser capaz de entregar editar algunos programas en C ++ en utilizable C ++ código fuente. Para los programas de MSVC compilados, en la actualidad hay que spoonfeed el descompilador y decirle que hay un parámetro de registro (thiscall convención de llamada). Los interruptores para manejar esto son complejas; ver con el interruptor -sf.
Detalles de software:
Versión: alpha 0.3
Fecha de carga: 3 Jun 15
Licencia: Libre
Popularidad: 182
Comentarios que no se encuentran