• Main Menu
  • Decompiler


    A decompiler is a program which takes executable code and produces source code from it.

    A compiler creates executable code from source code; A decompiler attempts to reverse this process.

    A decompiler is a specialized version of a disassembler. While a disassembler converts executable code to assembly language, a decompiler attempts to go further and convert the executable code to source code in a higher level language, such as C or C++.

    Decompilers

    Boomerang

    The goal is the Boomerang project is an attempt to develop a real decompiler for machine code programs through the open source community. A decompiler takes as input an executable file, and attempts to create a high level, compilable, possibly even maintainable source file that does the same thing. It is therefore the opposite of a compiler, which takes a source file and makes an executable. However, a general decompiler does not attempt to reverse every action of the decompiler, rather it transforms the input program repeatedly until the result is high level source code. It therefore won't recreate the original source file; probably nothing like it. It does not matter if the executable file has symbols or not, or was compiled from any particular language. (However, declarative languages like ML are not considered.)Decompiler

    The intent is to create a retargetable decompiler (i.e. one that can decompile different types of machine code files with modest effort, e.g. X86-windows, sparc-solaris, etc). It was also intended to be highly modular, so that different parts of the decompiler can be replaced with experimental modules. It was intended to eventually become interactive, a la IDA Pro, because some things (not just variable names and comments, though these are obviously very important) require expert intervention. Whether the interactivity belongs in the decompiler or in a separate tool remains unclear.

    By transforming the semantics of individual instructions, and using powerful techniques such as Static Single Assignment dataflow analysis, Boomerang should be (largely) independent of the exact behavior of the compiler that happened to be used. Optimization should not affect the results. Hence, the goal is a general decompiler.

    Got Something To Say:

    Your email address will not be published. Required fields are marked *

    3 comments
    1. jai

      20 April, 2012 at 12:53 pm

      how to decompile the binary file into c code

      Reply
    2. John Marshall

      16 March, 2011 at 10:07 pm

      What is it called when you take Windows 7 code and put it back into to the language it was written with?

      Ie: take winload.exe to c/c++/C#?

      John

      Reply
      • memenode

        17 March, 2011 at 8:49 pm

        Decompiling or reverse engineering.

        Reply
    Programming
    } 418 queries in 0.437 seconds.