Re: anyone interested in decompilation

"Amit Gupta" <emailamit@gmail.com>
4 Aug 2006 16:41:59 -0400

          From comp.compilers

Related articles
Re: anyone interested in decompilation dcorbit@connx.com (2006-08-03)
Re: anyone interested in decompilation emailamit@gmail.com (Amit Gupta) (2006-08-04)
Re: anyone interested in decompilation martin@gkc.org.uk (Martin Ward) (2006-08-04)
Re: anyone interested in decompilation gah@ugcs.caltech.edu (glen herrmannsfeldt) (2006-08-08)
Re: anyone interested in decompilation Juergen.Kahrs@vr-web.de (Juergen Kahrs) (2006-08-10)
Re: anyone interested in decompilation kym@ukato.freeshell.org (russell kym horsell) (2006-08-11)
Re: anyone interested in decompilation chris.dollin@hp.com (Chris Dollin) (2006-08-12)
Re: anyone interested in decompilation Juergen.Kahrs@vr-web.de (=?ISO-8859-1?Q?J=FCrgen_Kahrs?=) (2006-08-13)
[5 later articles]
| List of all articles for this month |

From: "Amit Gupta" <emailamit@gmail.com>
Newsgroups: comp.compilers
Date: 4 Aug 2006 16:41:59 -0400
Organization: http://groups.google.com
References: <1154507032.629515.108580@m79g2000cwm.googlegroups.com> 06-08-017
Keywords: disassemble, comment

dcorbit@connx.com wrote:
> QuantumG wrote:
> You can't turn the DNA of a dead cow back into a cow. That sort of
> thing only works on "Jurasic Park" movies.
>
> When you want another cow, the best way to get one is to get a momma
> cow and a daddy cow (sometimes known as 'bulls') and let them do their
> business.
>


> [If you know that a program was compiled by a particular compiler, I gather
> it's possible to do pattern matching on the code idioms it uses to recover
> more source than one might expect. And debug symbols help a lot. -John]


For a particular compiler (call it Machine-A), It would be possible to
create another Machine-B, which can convert the output of Machine-A
back to its input. Since Machine- A and its working is known a-priori,
MachineB can be first trained (using techniques from machine learning
or neural networks). In machine-learning domain, such techniques are
found to be non-trivially useful, even when Machine-A is
non-deterministic (following some probabbility distribution function
or pure learning history). For a deterministic machine like compilers,
it should be a piece of cake, given enough (practically feasible)
learning of B from A.


PS: The analogy of dead-cow is incorrect. Getting another living-cow
from dead cow is equivalent to generating correct source code from a
faulty machine-code. A dead cow is something which is not functional.
[The translation from source to object is an extremely lossy one. You
can reconstruct some source code, but it's tough in general to get
source code you'd want to use. But see some following articles for
success stories. -John]


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.