Reverse Engineering Stack Exchange is a question and answer site for researchers and developers who explore the principles of a system through analysis of its structure, function, and operation. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Just started out with x86 assembly and slowly getting the hang of it. IDA produces nice graphs that make it much easier to follow all the jumps and function calls and stuff.

I've looked at examples of arithmetics, control flow, loops, and function calls, and feel that I could reasonably take a chunk of instructions and reproduce the same logic in Java or C.

Are there tools that will automatically take assembly and convert it to, say, C? I imagine for some people that at some point it becomes more of a chore than an exercise after doing it for years.

share|improve this question
An example I saw before is a simple XOR encryption algorithm that used a 64 KB key for some reason. That's not something you want to type out manually... – MxyL Jun 19 '14 at 21:19
Decompilation is not that simple, the most complex thing is about rebuilding the high-level structures of the program that have been lost during the compilation process (variables, functions, modules/classes, ...). – perror Jun 19 '14 at 21:32
@perror I'm thinking more along the lines of subroutines and low-level structures. For example, after digging around with a debugger I've pinpointed the exact set of subroutines that perform a certain operation, and that is all that I need. Oh except there are a million instructions involved. – MxyL Jun 19 '14 at 21:40
You can use decompiler in IDA to produce a C file. It's not included in free version of IDA though. – Paul Jun 20 '14 at 7:57
up vote 7 down vote accepted

Yes, that type of tool is called a

Several examples below:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.