Discussion:
Reverse Engineering
(too old to reply)
Kelvin_K
2004-09-08 10:31:57 UTC
Permalink
Does anyone know of a program that will reverse engineer .exe files compiled
with ada back into ada source code?

With out going into detail, I have legitimate and legal reasons for doing
this.....
Brian Catlin
2004-09-08 16:43:27 UTC
Permalink
Post by Kelvin_K
Does anyone know of a program that will reverse engineer .exe files compiled
with ada back into ada source code?
With out going into detail, I have legitimate and legal reasons for doing
this.....
Going from Ada (or any other high-level language) to an executable file,
involves a loss of information on a large scale. So, trying to go from the
executable back to the Ada source isn't possible.

It is similar to trying to convert a load of hamburger back into a cow

-Brian
t***@acm.org
2004-09-08 17:33:58 UTC
Permalink
Post by Brian Catlin
Going from Ada (or any other high-level language) to an executable file,
involves a loss of information on a large scale. So, trying to go from the
executable back to the Ada source isn't possible.
Such a tool is called a "decompiler". It does not, of course, go back
to the original source code, but it can generate source code which is
equivalent. Given the symbol table (also used by debuggers), it can
generally use the correct names. You can think of a debugger generated
assembly listing as a sort of mini decompilation. Things like jump
vectors can be difficult, because they make it hard to distinguish data
and code.
I helped on a decompiler project in my very first programming job, some
time ago. The intent was to take existing executables, whose source had
been lost, or which were programmed in assembly for a particular machine,
decompile them, and then maintain and/or port the resulting source code.
It was do-able, but the results were less than stellar.
I don't know of any decompiler to Ada. The last time I googled for
"decompiler" there was some more recent info, including, IIRC, a PhD
thesis project.

Continue reading on narkive:
Loading...