comp.lang.ada
 help / color / mirror / Atom feed
* Reverse engineering
@ 1996-10-28  0:00 David Tannen
  1996-11-07  0:00 ` Ken Nelson
  0 siblings, 1 reply; 8+ messages in thread
From: David Tannen @ 1996-10-28  0:00 UTC (permalink / raw)



I am looking for a tool that will reverse engineer Ada source
code and create a procedure calling sequence.  I have access to
Cadre Teamwork (and reverse engineering) which I don't think will
do this.  Also I have access to Rational Apex, which I think might
be able to do this with a custom script.

Any help would be appreciated.

David Tannen                  Prime Email:  p26332@case3.geg.mot.com
Motorola-SSTG                 Backup Email: p26332@gegpo11.geg.mot.com
MS: H1218                     Member:       SERC, TeamAda and TeamOS/2
8201 E. McDowell Rd.          Phone:        (602) 675-1074
Scottsdale, Arizona 85252     Beeper:       (602) 310-9188
----------------------------------------------------------------------





^ permalink raw reply	[flat|nested] 8+ messages in thread

* reverse engineering
@ 1996-11-05  0:00 William Frye
  1996-11-07  0:00 ` Art Schwarz
  0 siblings, 1 reply; 8+ messages in thread
From: William Frye @ 1996-11-05  0:00 UTC (permalink / raw)



I am currently interested in doing reverse engineering on a sizable system,
does anyone know of a program that enables one to pull off the logical
constructs (if-then else, case etc.) from an Ada program and write them to
a test case matrix?  Can YAC or Bison be used for this purpose?




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reverse engineering
  1996-10-28  0:00 Reverse engineering David Tannen
@ 1996-11-07  0:00 ` Ken Nelson
  0 siblings, 0 replies; 8+ messages in thread
From: Ken Nelson @ 1996-11-07  0:00 UTC (permalink / raw)



Hi David,

In article <1996Oct28.215921.18820@schbbs.mot.com>, p26332@case3.geg.mot.com 
wrote:

>I am looking for a tool that will reverse engineer Ada source
>code and create a procedure calling sequence.  I have access to
>Cadre Teamwork (and reverse engineering) which I don't think will
>do this.  Also I have access to Rational Apex, which I think might
>be able to do this with a custom script.
>
>Any help would be appreciated.

Our company offers a few  ways to handle this question, one
as an adjuct to Teamwork/Ada, others as stand-alone tools.

Adjunct to Teamwork/Ada
====================

   We wrote the revAda tool that you are probably using
   for ASG reverse-engineering into Teamwork/Ada.  Recently
  we've introduced a companion product called AdaNotes, which
  reverse-engineers Ada back into Teamwork/Ada Note fields.

  One of the Notes reverse-engineered is "Invocation Tree".  Once
  in the Teamwork/Ada note it can be used with the Teamwork documentation
  generation tools.

 Email me if you would like more info about this, or contact your Cayenne
  (formerly Cadre) salesperson.


Stand-Alone
==========

   If you want this textually then our ADADL Ada static analyzer produces this
   and a couple dozen other trees, cross-references, pretty-prints, etc.... 

   If you want this graphically, then our GrafBrowse tool provides call-by
  and/or invocation tree (interactive or in postscript form) as well as
  Booch-Buhr style ASGs. It is also integrated with Teamwork/Ada.

  For examples of this see http://www.scitools.com

 Hope this helps.

Regards,


Ken N.
------------

Ken Nelson
nelson@scitools.com
(603) 448-6960
(603) 448-6961 (fax)
http://www.scitools.com




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: reverse engineering
  1996-11-05  0:00 reverse engineering William Frye
@ 1996-11-07  0:00 ` Art Schwarz
  1996-11-08  0:00   ` Stephen Leake
  0 siblings, 1 reply; 8+ messages in thread
From: Art Schwarz @ 1996-11-07  0:00 UTC (permalink / raw)



In article <55ndb9$t02@news1.mnsinc.com>, wfrye@mnsinc.com (William Frye) writes:
>I am currently interested in doing reverse engineering on a sizable system,
>does anyone know of a program that enables one to pull off the logical
>constructs (if-then else, case etc.) from an Ada program and write them to
>a test case matrix?  Can YAC or Bison be used for this purpose?


With respect to YACC(Bison)/LEX: It is possible to construct a parser
for Ada and pick out the constructs desired. There are copies of the
Ada syntax in various repositories - tho' I don't have their names.
However, it is probably 'cheaper' to look towards an existing toolset
for this capability. As a start, there is a Ada Static Code Analyser
at "Home of the Brave Ada Programmers" at http://www.adahome.com. You
can modify the code (I think that it's available) and change the reporting
requirements from an 'analysis' to whatever you want.

The rationale behind suggesting that a static code analyser be used is that
these analysers typically construct flow-graphs of programs and these flow-graphs
naturally partition using branch statements (goto's, conditionals, case statements,
looping constructs, etc.). It would then seem to be a good fit for your
application.

art schwarz
schwarza@gdls.com





^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: reverse engineering
  1996-11-07  0:00 ` Art Schwarz
@ 1996-11-08  0:00   ` Stephen Leake
  0 siblings, 0 replies; 8+ messages in thread
From: Stephen Leake @ 1996-11-08  0:00 UTC (permalink / raw)



In article <55ndb9$t02@news1.mnsinc.com>, wfrye@mnsinc.com (William
Frye) writes:
>I am currently interested in doing reverse engineering on a sizable system,
>does anyone know of a program that enables one to pull off the logical
>constructs (if-then else, case etc.) from an Ada program and write them to
>a test case matrix?  Can YAC or Bison be used for this purpose?

A commercial tool that writes test drivers for Ada is available from:
 
** Vector Software Inc. 401-295-5855
     1130 Ten Rod Road
     Suite E-307
     North Kingstown, Rhode Island 02852
     fax:   401-295-5856
    http://www.vectors.com
    AdaCast test framework builder

(note that there is a very different company at http://www.vector.com !)

A flow analysis tool is available from:
** McCabe Associates  800-638-6316
http://www.mccabe.com

Neither writes the test cases for you; Vector builds the test framework
and stubs, McCabe provides a flow graph and a path coverage tool.
Testing is hard work!
-- 
- Stephe




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Reverse Engineering
@ 2004-09-08 10:31 Kelvin_K
  2004-09-08 16:43 ` Brian Catlin
  0 siblings, 1 reply; 8+ messages in thread
From: Kelvin_K @ 2004-09-08 10:31 UTC (permalink / raw)


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..... 





^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reverse Engineering
  2004-09-08 10:31 Reverse Engineering Kelvin_K
@ 2004-09-08 16:43 ` Brian Catlin
  2004-09-08 17:33   ` tmoran
  0 siblings, 1 reply; 8+ messages in thread
From: Brian Catlin @ 2004-09-08 16:43 UTC (permalink / raw)


"Kelvin_K" <Kelvin_K@hotmail.com> wrote in message 
news:BcB%c.39735$cb5.21132@hydra.nntpserver.com...
> 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





^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reverse Engineering
  2004-09-08 16:43 ` Brian Catlin
@ 2004-09-08 17:33   ` tmoran
  0 siblings, 0 replies; 8+ messages in thread
From: tmoran @ 2004-09-08 17:33 UTC (permalink / raw)


>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.



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-09-08 17:33 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-10-28  0:00 Reverse engineering David Tannen
1996-11-07  0:00 ` Ken Nelson
  -- strict thread matches above, loose matches on Subject: below --
1996-11-05  0:00 reverse engineering William Frye
1996-11-07  0:00 ` Art Schwarz
1996-11-08  0:00   ` Stephen Leake
2004-09-08 10:31 Reverse Engineering Kelvin_K
2004-09-08 16:43 ` Brian Catlin
2004-09-08 17:33   ` tmoran

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox