What is a Decompiler?
There is a process which turns English-style source code into machine language called Compilation.
Decompilation turns machine language back into English-style source code.
Decompilation typically reads in machine language which is hard to read by eye. It works by combining a simulation with several 'special cases' which turn compiler optimisations back into an English-style representation.
6502 Decompilation - Decompile Sample #1 (InvertCurrentMenuSelect)
Just to show how well it works on 6502 code, I enclose this sample, function "InvertCurrentMenuSelect" from the game Escape from Zol: Assembly | Decompiled Code
6502 Decompilation - Decompile Sample #2 (DrawBorder)
I also enclose this sample, function "DrawBorder" from the game Escape from Zol: Assembly | Decompiled Code
DrawBorder draws this:
I also enclose this sample, function "Intro" from the game Super Mario Bros: Assembly | Decompiled Code
Who are Decompiler Tech?
A company founded in 2002 by Jeremy Smith, building on the work done by Jeremy in 1998, the 'Disinformation' decompiler.
Since around 2003, we have done many decompilations for customers, mostly with good outcomes.
The decompiler is now called 'RightBack'.
What CPU can RightBack decompile?
We've abstracted away the most basic CPU opcodes, so adding a new CPU is a week's work.
CPUs supported so far:
Services We Provide
Get in touch at firstname.lastname@example.org and state the number of the service required. We will ask for the program in question, and then we'll run it through the preprocessor and then into a disassembler, then that goes into the decompiler.
Some decompiler jobs we can do immediately, and we'll send a sample and a quote.
Other jobs require hours of work because your program uses features (such as C++) which we can't decompile without some extra work. Of course, once the work is done, it makes it easier for the next decompile job.
CPU jobs (in other words, we write a module for a particular CPU instruction set) will take a little bit longer to determine if it'll work well enough to make it worthwhile.
Please Note: VB Custom Work
The reason for the high prices for VB6 is that it has a huge internal instruction set, which is undocumented, and it can take 30-60 minutes to implement an unknown API instruction, such as LateMemStId. One good thing to come out of this, though, is a huge library of ActiveX (OCX) libraries in text format, so any Windows software using these OCXs can be decompiled without a glitch.
Another problem is that because of the complexity of the VB6 API, it's impossible to get the code 100% accurate. The general accuracy is about 5 bugs per 100 lines, or 95% accurate, 5% inaccurate.
Please note: no decompiler can be 100% accurate so making a program recompilable is a tough job.