Computer Chess Club Archives


Search

Terms

Messages

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

Author: Arnon Yogev

Date: 10:27:25 01/28/06

Go up one level in this thread



Ofcourse it is possible to use dissassemblers to rebuild some of the code from
the .exe file,
but they were talking about _Automatic_ ways to do it.
this is impossible.
on the other points I completely agree with you.

Arnon.


On January 28, 2006 at 12:54:09, Sebastian Leibnitz wrote:

>On January 28, 2006 at 12:19:43, Arnon Yogev wrote:
>
>>On January 28, 2006 at 10:48:12, Uri Blass wrote:
>>
>>>On January 28, 2006 at 10:05:24, P L Patodia wrote:
>>>
>>>>On January 28, 2006 at 07:59:03, Uri Blass wrote:
>>>>
>>>>>I wonder if there can be some program to detect clones based on the exe files.
>>>>>
>>>>>The program does not have to be 100% correct and even detecting part of the
>>>>>clones is good.
>>>>>
>>>>>I remember that there is already a program that help to detect clones based on
>>>>>source codes and by reverse engineering it should be possible to translate exe
>>>>>files to source code so I think that the natural step is to have a program that
>>>>>detects clones automatically for people like Leo by comparing the sources of the
>>>>>programs that he is using.
>>>>>
>>>>>If there is going to be a program that can detect all the clones that were
>>>>>detected until today and does not have false clone detection by comparing
>>>>>different free source code programs that are not clones then it is going to be
>>>>>good.
>>>>>
>>>>>Uri
>>>>
>>>>It is extremely difficult to write a program which can detect clones based on
>>>>the exe files. If you compile same program using different compilers, you will
>>>>get different exe.
>>>
>>>Yes but the idea is that the program is first translating the exe file to source
>>>code and later compare the source codes to find plagiarism.
>>
>>This is ridiciouls.
>
>
>Not exactly true. There are dissassemblers and decompilors with which one can
>indeed recreate *a* source code. (it requires a lot of effort by hand on top and
>a sound understanding of how the program works, e.g. how chess programs work)
>
>It will not be the same code (all the names of variables, procedures, etc. are
>lost for sure and the program itself might be different in a variety of issues
>(for example you get all kinds of ugly compilor optimizations put into your
>algorithms)), but it can be made to run (compile again).
>
>I assume the work for a chess programm might take a few weeks, especially
>getting all the precomputed data (eg. piece square tables and other such stuff)
>out of the prog, but it should be doable. (requires a lot of assembler code
>knowledge)
>
>If one just wants to take a peek, that can be done quite fast. Well, it depends
>what you want to peek at. If you just want to look at alphabeta() to see what
>kind of search tricks have been used, nullmoving with R=2 or R=3 --> That will
>take less than an hour.
>
>EXE
>> decompile
>> look att all the functions/procedures that the decompiler found
>> identify the function(s) which resemble a typical alphabeta-search
>> behold
>
>
>If you had a look at Crafty's or Fruit's alphabeta, you would be able to detect
>a clone...
>
>(That is if the function has not been rewritten, perhaps its better to search
>for the var initializing code, or the input/output(UCI) code to detect clones.
>That is fairly easy to identify, and rarely rewritten in a clone)
>
>
>
>It gets more tricky to have a look at the precomputed data, etc... (you might as
>well go for everything..., well not quite)
>
>
>
>It is possible to protect oneself against such intrusions (making them more
>difficult), but I doubt any chess engine does so... (Ive never encountered one)
>
>
>>If one could "translate" .exe files to source code, there would be no
>>competition whatsoever between chess engines, 3d applications, or any other
>>software on the planet.
>
>
>It (copying by decompiling and then recoding) is done often enough.
>
>There is still competition, because
>1) it is illegal (most often) to do what I described above
>2) because you might think your approach is superior and pursue that
>3) because it is sometimes easier to code sth. yourself than to wade through
>your opponents code/source for a few lines of trickery
>4) while your are copying your opponents work, they are advancing they are
>product and you are constantly behind...
>
>
>
>>perhaps you can detect recursive patterns using reverse engineering in order to
>>detect clones, but that's as far as you'll ever get.
>
>Mhh, you might apply reverse engineering to the procedure I described above.



This page took 0.01 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.