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.