Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: source code can be retrieved from an engine

Author: Dann Corbit

Date: 18:04:47 02/03/06

Go up one level in this thread


On February 02, 2006 at 10:33:09, Joseph Tadeusz wrote:

>On January 31, 2006 at 14:22:36, Dann Corbit wrote:
>
>>On January 28, 2006 at 16:07:15, Uri Blass wrote:
>>
>>>On January 28, 2006 at 15:54:46, Sebastian Leibnitz wrote:
>>>
>>>>Look here:
>>>>
>>>>http://www.program-transformation.org/Transform/AutomaticDecompiler
>>>
>>>Thanks
>>>
>>>If I understand correctly it is even not possible to get assembly code of a
>>>program automatically and the user need to guess things.
>>
>>100% correct decompilation is PROVABLY impossible (it has been shown to be
>>equivalent to the question "Will the Turing machine halt?")
>>
>>On the other hand, for specific machines and specific compilers, it is possible
>>to write decompilers that are generally helpful most of the time.
>>
>>You can't turn the hamburger back into the cow, no matter what anyone says.  But
>>you can figure out things like "What kind of cow was it?"  "What part of the cow
>>did this come from?"
>>
>>The comments are gone.  The helpful variable names are gone.  The code will be
>>much larger and will have been rearranged by the compiler.
>>
>>We can take a decompiler or disassembler and get back half of the information we
>>are looking for.  With human intervention, maybe 75%.  But we are not going to
>>get back our original program.
>>
>>That's on the one hand.  On the other hand, with something like the IDA together
>>with someone who knows assembly can clearly recover the basic algorithms.
>>
>>On the other, other hand, it is going to be a lot of work.  Nobody is going to
>>push a button and have the original program spit out the other end.  It is going
>>to be a program similar to the original (clearly NOT identical) and with most of
>>the human readable stuff stripped out.  So several passes would be needed to
>>figure out what is going on.
>>
>>Consider even a program with all the variable names and comments intact like
>>Fruit 2.1 or Crafty 19.20 as examples.  Will you simply read and understand 100%
>>of what is going on?  Now change all the variable names to things like EAX and
>>remove all the comments.  How about now?
>
>Take this program:
>
>int main()
>{
>  return 0;
>}
>
>A decompiler gives this:
>
>L00401000()
>{
>  return 0;
>}
>
> - we know it has to be main().
> - we know it has to return an int.
> - we know include files are not necessary.
>
>All this disproves your point that 100% correct decompilation is impossible.
>
>QED

I saw 100 ducks.  All of them were white.
Therefore, ducks are white.
QED.

There is a whole in deductive logic.  The hole is that the first duck that comes
along that isn't white proves that I was wrong.

You showed one program that was correctly decompiled.  Now show that the other
infinite quantity is also correctly decompiled.

Put another way,
"All odd numbers are prime!"

Look:
1, 3, 5, 7
All of them are odd.  All of them are prime (ignoring 1, but 1 was a prime based
upon some old definitions).

Again, my examples did not demonstrate the correctness of my WRONG statement.
In fact, they had no bearing on it whatsoever.

Your programs is a white duck, wearing the number 3.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.