From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,3370935c131f2b87 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!news.glorb.com!wn14feed!worldnet.att.net!attbi_s04.POSTED!53ab2750!not-for-mail From: tmoran@acm.org Newsgroups: comp.lang.ada Subject: Re: Reverse Engineering References: X-Newsreader: Tom's custom newsreader Message-ID: NNTP-Posting-Host: 24.6.132.82 X-Complaints-To: abuse@comcast.net X-Trace: attbi_s04 1094664838 24.6.132.82 (Wed, 08 Sep 2004 17:33:58 GMT) NNTP-Posting-Date: Wed, 08 Sep 2004 17:33:58 GMT Organization: Comcast Online Date: Wed, 08 Sep 2004 17:33:58 GMT Xref: g2news1.google.com comp.lang.ada:3497 Date: 2004-09-08T17:33:58+00:00 List-Id: >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.