Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7849221
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 2, 20262026-06-02T18:27:13+00:00 2026-06-02T18:27:13+00:00

I have heard the term decompiling used a few times before, and I am

  • 0

I have heard the term “decompiling” used a few times before, and I am starting to get very curious about how it works.

I have a very general idea of how it works; reverse engineering an application to see what functions it uses, but I don’t know much beyond that.

I have also heard the term “disassembler“, what is the difference between a disassembler and a decompiler?

So to sum up my question(s): What exactly is involved in the process of decompiling something? How is it usually done? How complicated/easy of a processes is it? can it produce the exact code? And what is the difference between a decompiler, and a disassembler?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-02T18:27:13+00:00Added an answer on June 2, 2026 at 6:27 pm

    Ilfak Guilfanov, the author of Hex-Rays Decompiler, gave a speech about the internal working of his decompiler at some con, and here is the white paper and a presentation. This describes a nice overview in what are all the difficulties in building a decompiler and how to make it all work.

    Apart from that, there are some quite old papers, e.g. the classical PhD thesis of Cristina Cifuentes.

    As for the complexity, all the “decompiling” stuff depends on the language and runtime of the binary. For example decompiling .NET and Java is considered “done”, as there are available free decompilers, that have a very high succeed ratio (they produce the original source). But that is caused by the very specific nature of the virtual machines that these runtimes use.

    As for truly compiled languages, like C, C++, Obj-C, Delphi, Pascal, … the task get much more complicated. Read the above papers for details.

    what is the difference between a disassembler and a decompiler?

    When you have a binary program (executable, DLL library, …), it consists of processor instructions. The language of these instructions is called assembly (or assembler). In a binary, these instructions are binary encoded, so that the processor can directly execute them. A disassembler takes this binary code and translates it into a text representation. This translation is usually 1-to-1, meaning one instruction is shown as one line of text. This task is complex, but straightforward, the program just needs to know all the different instructions and how they are represented in a binary.

    On the other hand, a decompiler does a much harder task. It takes either the binary code or the disassembler output (which is basically the same, because it’s 1-to-1) and produces high-level code. Let me show you an example. Say we have this C function:

    int twotimes(int a) {
        return a * 2;
    }
    

    When you compile it, the compiler first generates an assembly file for that function, it might look something like this:

    _twotimes:
        SHL EAX, 1
        RET
    

    (the first line is just a label and not a real instruction, SHL does a shift-left operation, which does a quick multiply by two, RET means that the function is done). In the result binary, it looks like this:

    08 6A CF 45 37 1A
    

    (I made that up, not real binary instructions). Now you know, that a disassembler takes you from the binary form to the assembly form. A decompiler takes you from the assembly form to the C code (or some other higher-level language).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have heard the term unit testing many times and I am wondering how
What does the term Coding in Vacuum mean? I have heard the term before
I have often heard this term being used, but I have never really understood
I have heard this term, vtable fixup, used. What does it mean? I had
I have heard this term used for managing a code base in GitHub. What
I have heard the term connection pooling and looked for some references by googling
I have heard that in C++, using an accessor ( get...() ) in a
I have heard it many times that garbage collection in PyS60 is not up
I have heard that DateTime.Now is very expensive call (from here ) Is GETDATE()
I have heard the term universal type thrown around in the context of programming

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.