|
If you google for "decompiler" or "disassembler" you will find all sorts of entries.
Generally, decompilers will often be disassemblers: they allow you to get back to assembler code. The catch (apart from the fact you need to know the form of assembler emitted by the decompiler and have an assembler that will accept it) is that the output of the decompiler, like the format of executable files, is machine dependent and also very low level. Depending on the machine, the disassembly may not be complete.
I've heard some mention of programs that can decompile back to a higher level language (C, C++, etc) but nothing in common usage. As executable file formats (often) do not contain information such as variable names, type names, function names, etc (such info is often stripped by optimising compilers and linkers), the code that could be produced would be pretty basic (eg no higher level constructs, no use of the standard library) and arguably just as difficult to read as assembler code.
It would be easier all round to contact the author of the program and ask them to make the change. Even if they want to charge you a lot of money for the privilege.
|