Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Bob: ELChinito a clone from Crafty ...

Author: Paul H

Date: 23:09:51 08/22/04

Go up one level in this thread


On August 23, 2004 at 00:31:53, Rolf Tueschen wrote:

>On August 22, 2004 at 17:17:25, Paul H wrote:
>
>>The argument here is not based on the output of the engine or the strenght of
>>the engine or the kind of moves that it generates. If ElChinito is only Elo
>>1000, it still does change the fact that the binary ElChinito.exe is made from
>>Crafty source. If it is Elo 1000 using crafty code, it just means that there are
>>changes that made it so.
>>
>>I just did a thorough code analysis. It reveals facts that even Bob only
>>realizes now. Even without the source code, Bob agrees that those portions of
>>code is from Crafty. Again, that is without the source code. Have you seen
>>anyone do this kind of technical analysis here before? And after all that, you
>>compare it to a primitive witch hunt?
>>
>>I am about to also post the disassembly of the function NextMove(). These are
>>all technical facts.
>>
>>Why don't you review all the code analysis and tell us that it is wrong.
>
>
>I am also part of the handful of people in CCC who can't understand code
>analysis or anything with code. Could you please explain to these few what you
>did in your analysis? You say that you can get details of a program's code if
>you have only the exe? - A question in that context would also be, if you could
>clarify if LIST (Graz) was a Crafty clone or at least if it used parts of Bob's
>code? Would your answer be also relevant if say some critics still claimed that
>they had data that LIST in fact were a clone or used parts of its code? - Thank
>you in advance.

You analyze an exe file by running a disassembler on it. You will get a file in
assembly language. Now you can read it as a computer language, just like you
would read any other computer language (like C/C++, Pascal). When C/C++ code is
turned into an exe file, it is first converted to assembly language. This is the
same assembly language file that you get when you disassemble the exe. You can
also look at the disassembly of an exe by loading it in a debugger.

Disassembling is the method used when people want to determine what a virus does
(since you don't have the source code of the virus; you only have the infected
exe file). People also use the method to determine how to "crack" a program
(like removing some copy-protection code). It is also the method for determining
if others are using your intelectual property (like if Oracle wants to see if
IBM's DB2 database software is using any Oracle technology) - its much like what
we are doing here between Crafty and ElChinito.

Btw, to turn C/C++ to assembly language, you don't need a compiler. You can
translate it manually, but it is a lot of work. You can also manually convert an
exe to assembly language. Again, it is a lot of work.

As for List, I have mentioned this before, that I analyzed version 4.61 of List
and found that it does not use BitBoards at all, and that I could not find any
similarity with Crafty. Dann agrees that it does not use BitBoards because he
has seen the code.

The effect of not using BitBoards is huge. The attack functions will be very
different. The evaluation functions which rely a lot on computing attacks will
look very different. The move generation will be very different. And with the
use of x88 boards, the board indexing is very different too.

If one takes some code from Crafty but converts it to a non-bitboard code, the
disassembly with look very different.

Mind you however, that to convert Crafty to use non-bitboards is a lot of work.
It is not the kind that a cheap cloner will want to do. In such a case, you
could already qualify for copying the idea and not the code.



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.