Rybka 1.0 vs. Strelka

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Wanted: some opposition to the provided evidence

Post by Sven »

Terry McCracken wrote:If Christophe or any other commercial programer wanted the source code of Rybka 3 they'd disassemble it. It's not that hard.
Just to get the wordings correct ...

1) "Disassembling" (as also used by some others in this thread) only refers to converting the binary program into assembler instructions, like with the MSVC(++) command "dumpbin /disasm". What you mean is either "decompiling" or "reverse engineering".

2) You cannot obtain "the source code" of a binary via reverse engineering if the binary comes without a symbol table that usually contains (some of!) the identifiers the original author has chosen, and without further input. Since I only looked at the free R1.0beta exe I can only confirm absence of the symbol table for that version. But you can be 100% sure that the commercial versions have the symtable stripped off, too.

3) So the reverse engineering is an ambiguous activity (i.e. there are many possible results being equivalent since they can be mapped to the same binary) which is in reality not fully automated, even if there might be some assisting tools for it. The reverse engineer has to assign identifiers to functions and (global/static) variables which are anonymous so far. And, what I personally consider to be the hardest job, he also has to deal quite a lot with local variables living either on the stack or in registers, and having no address that could simply be translated into an identifier.

So I propose to be very careful with a statement that describes reverse engineering of a bare executable as being "not that hard".

Just as additional info: the R1.0beta exe is about 2.4MB large (32 bit version). Strelka 2.0 32bit exe has about 180kB IIRC. Although the huge difference probably comes from the fact that Strelka 2.0 does not use some huge table that R1.0beta had used, this is still a lot, so IMO it _is_ hard work.

This remains true even with the help of available open source where you can borrow some function names from.

Just my 2 cents!

Sven
Dirt
Posts: 2851
Joined: Wed Mar 08, 2006 10:01 pm
Location: Irvine, CA, USA

Re: Wanted: some opposition to the provided evidence

Post by Dirt »

Graham Banks wrote:
Terry McCracken wrote:Care to claify?

Your last comment was absurd in this case.
Why? I wondered how legal it is for anybody to openly declare that they're disassembling the exe of an engine and then posting the results of their handiwork for the world to see.
It's generally legal to disassemble. Some licenses try to prohibit it, but I'm not so sure about the legality of the prohibition. Anyway, there was no such restriction in the Rybka beta license.

Publishing the disassembled code is generally illegal, but I think the amount of code shown here, and the reason it was posted, would make it fall under the fair use provisions of USA copyright law.
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Wanted: some opposition to the provided evidence

Post by kranium »

Sven Schüle wrote:
Terry McCracken wrote:If Christophe or any other commercial programer wanted the source code of Rybka 3 they'd disassemble it. It's not that hard.
Just to get the wordings correct ...

1) "Disassembling" (as also used by some others in this thread) only refers to converting the binary program into assembler instructions, like with the MSVC(++) command "dumpbin /disasm". What you mean is either "decompiling" or "reverse engineering".

2) You cannot obtain "the source code" of a binary via reverse engineering if the binary comes without a symbol table that usually contains (some of!) the identifiers the original author has chosen, and without further input. Since I only looked at the free R1.0beta exe I can only confirm absence of the symbol table for that version. But you can be 100% sure that the commercial versions have the symtable stripped off, too.

3) So the reverse engineering is an ambiguous activity (i.e. there are many possible results being equivalent since they can be mapped to the same binary) which is in reality not fully automated, even if there might be some assisting tools for it. The reverse engineer has to assign identifiers to functions and (global/static) variables which are anonymous so far. And, what I personally consider to be the hardest job, he also has to deal quite a lot with local variables living either on the stack or in registers, and having no address that could simply be translated into an identifier.

So I propose to be very careful with a statement that describes reverse engineering of a bare executable as being "not that hard".

Just as additional info: the R1.0beta exe is about 2.4MB large (32 bit version). Strelka 2.0 32bit exe has about 180kB IIRC. Although the huge difference probably comes from the fact that Strelka 2.0 does not use some huge table that R1.0beta had used, this is still a lot, so IMO it _is_ hard work.

This remains true even with the help of available open source where you can borrow some function names from.

Just my 2 cents!

Sven
another possible explanation for the size difference:
one can take the same source code, compile with different optimizations, different options, and the size of the resulting executable can and usually will vary greatly.
Last edited by kranium on Mon Aug 25, 2008 5:21 pm, edited 1 time in total.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Wanted: some opposition to the provided evidence

Post by bob »

chrisw wrote:
kranium wrote:
Enir wrote:
bnemias wrote:
tiger wrote:
chrisw wrote:[snip]
No commercial company with half a brain will publish software claiming total rights over it if not true. That's the overpowering evidence one that R3 is clean. Chessbase won't licence it unless absolutely certain it's clean. That's overpowering evidence two. Say anything else and you play with fire. imo.
I think I have first hand experience on this and I know that you are wrong.
If you need examples, Verizon sued by BusyBox developers. Redhat v SCO, Sun v Microsoft. These occur all the time because major players push software that isn't "squeaky clean." So it's hard to use Chessbase's intelligence as proof of anything concerning Rybka 3.
Maybe. Reverse engineering Rybka 3 will prove whether or not it contains GPL code. Everything else is just speculative and damaging.

Enrique
No, not everything is speculative.
There's a mountain of evidence that strleka 2.0 has hundreds and hundreds of lines of code that are identical or equivilent to code found in fruit 2.1. (this comparison can be made even by a casual user...the two sets of source code are freely available). a detailed comparison was presented here:
http://64.68.157.89/forum/viewtopic.php ... ht=strelka

There is also evidence that strelka 2.0 (both source code and binary) is identical to rybka 1.0 beta.

In addition Vas has confirmed that Strelka is indeed his.

? I think the conclusion is not difficult to ascertain...
rybka 1.0 beta is a derivative of fruit 2.1

i volunteer to stir the shit.... :)
What if there's a completely innocent explanation?
The only possible "innocent explanation" would be "OK, I started by modifying fruit and I have modified the important parts, but didn't realize that the other parts would represent a problem". If you take any two chess programs on the planet, and compare the source, you are not going to find even a hundred lines of code that match exactly, much less a thousand or more.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Wanted: some opposition to the provided evidence

Post by bob »

chrisw wrote:
kranium wrote:
Enir wrote:
bnemias wrote:
tiger wrote:
chrisw wrote:[snip]
No commercial company with half a brain will publish software claiming total rights over it if not true. That's the overpowering evidence one that R3 is clean. Chessbase won't licence it unless absolutely certain it's clean. That's overpowering evidence two. Say anything else and you play with fire. imo.
I think I have first hand experience on this and I know that you are wrong.
If you need examples, Verizon sued by BusyBox developers. Redhat v SCO, Sun v Microsoft. These occur all the time because major players push software that isn't "squeaky clean." So it's hard to use Chessbase's intelligence as proof of anything concerning Rybka 3.
Maybe. Reverse engineering Rybka 3 will prove whether or not it contains GPL code. Everything else is just speculative and damaging.

Enrique
No, not everything is speculative.
There's a mountain of evidence that strleka 2.0 has hundreds and hundreds of lines of code that are identical or equivilent to code found in fruit 2.1. (this comparison can be made even by a casual user...the two sets of source code are freely available). a detailed comparison was presented here:
http://64.68.157.89/forum/viewtopic.php ... ht=strelka

There is also evidence that strelka 2.0 (both source code and binary) is identical to rybka 1.0 beta.

In addition Vas has confirmed that Strelka is indeed his.

? I think the conclusion is not difficult to ascertain...
rybka 1.0 beta is a derivative of fruit 2.1

i volunteer to stir the shit.... :)
What if there's a completely innocent explanation?
The only possible "innocent explanation" would be "OK, I started by modifying fruit and I have modified the important parts, but didn't realize that the other parts would represent a problem". If you take any two chess programs on the planet, and compare the source, you are not going to find even a hundred lines of code that match exactly, much less a thousand or more. Unless they have a common ancestry, that is.
chrisw

Re: Wanted: some opposition to the provided evidence

Post by chrisw »

bob wrote:
chrisw wrote:
kranium wrote:
Enir wrote:
bnemias wrote:
tiger wrote:
chrisw wrote:[snip]
No commercial company with half a brain will publish software claiming total rights over it if not true. That's the overpowering evidence one that R3 is clean. Chessbase won't licence it unless absolutely certain it's clean. That's overpowering evidence two. Say anything else and you play with fire. imo.
I think I have first hand experience on this and I know that you are wrong.
If you need examples, Verizon sued by BusyBox developers. Redhat v SCO, Sun v Microsoft. These occur all the time because major players push software that isn't "squeaky clean." So it's hard to use Chessbase's intelligence as proof of anything concerning Rybka 3.
Maybe. Reverse engineering Rybka 3 will prove whether or not it contains GPL code. Everything else is just speculative and damaging.

Enrique
No, not everything is speculative.
There's a mountain of evidence that strleka 2.0 has hundreds and hundreds of lines of code that are identical or equivilent to code found in fruit 2.1. (this comparison can be made even by a casual user...the two sets of source code are freely available). a detailed comparison was presented here:
http://64.68.157.89/forum/viewtopic.php ... ht=strelka

There is also evidence that strelka 2.0 (both source code and binary) is identical to rybka 1.0 beta.

In addition Vas has confirmed that Strelka is indeed his.

? I think the conclusion is not difficult to ascertain...
rybka 1.0 beta is a derivative of fruit 2.1

i volunteer to stir the shit.... :)
What if there's a completely innocent explanation?
The only possible "innocent explanation" would be "OK, I started by modifying fruit and I have modified the important parts, but didn't realize that the other parts would represent a problem". If you take any two chess programs on the planet, and compare the source, you are not going to find even a hundred lines of code that match exactly, much less a thousand or more. Unless they have a common ancestry, that is.
From Rybka forum, Vas states:

Maybe somebody can summarize the points.

Generally, code theft is easy to show - just show the two sections of identical code, side-by-side. There isn't much to debate in such cases. Rybka is of course original (with some accepted exceptions like bit scans & bit counters, etc). Strelka contains Rybka code. Whether Strelka also contains Fruit code, I don't know and don't really care.


If you want to show a problem with Rybka, put it, Rybka side by side with Fruit.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Wanted: some opposition to the provided evidence

Post by bob »

duncan wrote:If you could reply to this post by Mr Kaufman I would appreciate it


http://64.68.157.89/forum/viewtopic.php ... 30&t=23114

duncan
The issue with a "multi-PV" search is efficiency. If you watch a search as it progresses, the first move takes 50% of the total time or more, the remaining N-1 moves take about 50% of the time spread over them more or less equally. If you do a multi-PV search to just find the two best moves, it takes about 150% of the total time a normal search would take. If you find the 3 best moves, then we are up to 200%. Etc.

If I were going to try to do this, I think the ultimate approach would be a computer in front of me that I communicate with, and 2-3-4 other machines sitting beside it that are used to search specific moves to max depth. I highlight 2-3-4 moves out of the move list, and each of those machines searches just one. Note I am not talking about a multi-core search here as I would use the multi-core boxs to execute SMP searches as they normally would.

I use "multi-PV" in the annotate command for Crafty and it is a huge slow-down... Using just one machine would remove the tactical purity from the test as the normal Rybka would be searching a couple of plies deeper than the GM's tactical searcher because of the multi-PV overhead.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Wanted: some opposition to the provided evidence

Post by bob »

Uri Blass wrote:
Eelco de Groot wrote:
duncan wrote:If you could reply to this post by Mr Kaufman I would appreciate it


http://64.68.157.89/forum/viewtopic.php ... 30&t=23114

duncan
Hello Duncan

My count, using threadview it seems directed at Prof. Hyatt;
Bob Hyatt made eleven replies in your thread in this forum you are linking to, so it is not clear what you meant?

Regards, Eelco
Bob Hyatt did not reply to the last post and the posts that he made earlier are not relevant because they are no reply to duncan's post that is the last post in the thread.

Uri
The problem in CCC is that there are so many posts, and after just a few replies, everything shows up aligned on the right half of the page, which makes it easy to overlook something when it get lost in all the other posts. This is even in the wrong topic in fact...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Wanted: some opposition to the provided evidence

Post by bob »

chrisw wrote:
bob wrote:
chrisw wrote:
tiger wrote:
chessfurby wrote:It is well known fact. That is why those who knew it all the time are not worshipping Vas or rybka for that matter. However if you speak out loud you get silenced by the knights guarding the holy grail...

Cheers


"You must be motivated by jealousy or envy". That's the only counter argument. No wonder they are not silencing anybody with that. :)



// Christophe
You have to prove your case. The other side can remain silent in the meantime. In any case, how do they prove a negative? The onus is on you.
Proving they have no GPL code from Fruit (or any other program) is actually easy. But most likely not something they would want to do. If somebody accused me, I would just say "download the source from someone and compare with whatever you want...
Sounds like witchhunting method. See if she floats. If she does, burn her for witchcraft, if she sinks, she drowns anyway.

See the source, if innocent, you get to see the source, if guilty you get to see the source. Commercial programmer loses either way, like the witch.

The onus of proof remains on the accusers. Period.
Doesn't have to be me. In fact, I would not want to be involved. I can think of several that could do this and not be a "leaky" observer. Marsland. Newborn. Thompson. Levy. Campbell. Hsu. All of which are long out of computer chess programming. How do you think patent and copyright infringements get settled if nobody gets to see the suspected copy or source that was copied? Any sort of court action would be ideal here as once the courts become involved, a subpoena would clear this up instantly, which is probably why it won't happen unless the FSF gets involved.
chrisw

Re: Wanted: some opposition to the provided evidence

Post by chrisw »

bob wrote:
chrisw wrote:
bob wrote:
chrisw wrote:
tiger wrote:
chessfurby wrote:It is well known fact. That is why those who knew it all the time are not worshipping Vas or rybka for that matter. However if you speak out loud you get silenced by the knights guarding the holy grail...

Cheers


"You must be motivated by jealousy or envy". That's the only counter argument. No wonder they are not silencing anybody with that. :)



// Christophe
You have to prove your case. The other side can remain silent in the meantime. In any case, how do they prove a negative? The onus is on you.
Proving they have no GPL code from Fruit (or any other program) is actually easy. But most likely not something they would want to do. If somebody accused me, I would just say "download the source from someone and compare with whatever you want...
Sounds like witchhunting method. See if she floats. If she does, burn her for witchcraft, if she sinks, she drowns anyway.

See the source, if innocent, you get to see the source, if guilty you get to see the source. Commercial programmer loses either way, like the witch.

The onus of proof remains on the accusers. Period.
Doesn't have to be me. In fact, I would not want to be involved. I can think of several that could do this and not be a "leaky" observer. Marsland. Newborn. Thompson. Levy. Campbell. Hsu. All of which are long out of computer chess programming. How do you think patent and copyright infringements get settled if nobody gets to see the suspected copy or source that was copied? Any sort of court action would be ideal here as once the courts become involved, a subpoena would clear this up instantly, which is probably why it won't happen unless the FSF gets involved.
First, someone has to demonstrate there's at least a case to answer.

Where's the lines of equivalent code Rybka/Fruit? I suspect His Honour The Judge will ask that question first .....