Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.tools -> Re: Reverse engineer to a compiled Pro*C

Re: Reverse engineer to a compiled Pro*C

From: wayne <no_at_email.please.com>
Date: 17 May 2001 00:01:16 GMT
Message-ID: <9dv4cc$cfi@dispatch.concentric.net>

> However, do you a method to get the .c file? ... It will be very helpful
> for me.

No. This is what I meant by saying this was a C question: It is absolutely dependant on your C/C++ compiler. You need to get a decompiler for your specific compiler.

It is extremely hard to decompile C/C++ because: 1) It is compiled straight into Assembler (in the majority of the cases), there is no midlevel language; 2) This assembler code is usually extremely tight, and there may be multiple C/C++ statements that can produce the same machine language; and 3) If the program was compiled with optimization turned on, then you may as well forget it: This produces even tighter machine code and performs all sorts of complex tricks (ie, to reduce the number of clock cycles a line of code takes, the compiler may do weird operations). These tricks would confuse any decompiler.

This is why the decompiler has to be targeted at the specific compiler: The decompiler has to have intimate knowledge of what machine language is generated from what C/C++ statements. Even if it has that knowlwdge, the decompiler must be able to recognize the compiler optimizations (both when you optimize for code size and optimize for execution speed) and their machine code output. This is as impossible as it gets.

You may have to settle for assembly language code. There are many dissasemblers that go from machine code to assembler.

If you want to decompile something, Java is a much better language! Received on Wed May 16 2001 - 19:01:16 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US