More on Rybka/IPPOLIT (with occasional reference to Fruit)

General discussion about computer chess...
BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Post by BB+ » Sat Dec 04, 2010 2:14 am

the more common opinion is that once software is obtained legally, an end-user can use it for the purposes of discovery unless there is an agreement to the contrary
Perhaps I am wrong about this. For instance, Articles 4.2 and 6 of the Computer_Programs_Directive for the EU discuss this, and I think the intent is to prohibit reverse engineering in general (and most likely thus the sense of whatever happened with R3/IPPOLIT). However, if so, the exact wording of 5.3 is rather poor:
The person [...] shall be entitled to observe, study, or test the functioning of the program in order to determine the ideas and principles which underlie any element of the program if he does so while performing any of the acts of loading, displaying, running, transmitting or storing the program which he is entitled to do.
So if I use a debugger to "observe" what goes on during the "running" of the program, that seems to be explicitly permitted [and I can presumably at that point just take a disassembly of the whole code from it] --- but if I just take the executable and use Hex-Rays on it, that's not (for the program is not "running")? The document is from 1991, and seems rather outdated in methodology, as a strict construal of 5.3 essentially allows almost anything with the "while running" observational tools that are now available. My guess is that they never intended a modern debugger to be part of "observation" as implied here.

At the same time, Section 1.2 indicates that "Ideas and principles which underlie any element of a computer program [...] are not protected by copyright under this Directive", while 1.3 says "A computer program shall be protected if it is original in the
sense that it is the author's own intellectual creation", which simply leaves me to wonder what this last phrase really means. :?:

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Post by BB+ » Sat Dec 04, 2010 3:29 am

So if I use a debugger to "observe" what goes on during the "running" of the program, that seems to be explicitly permitted [and I can presumably at that point just take a disassembly of the whole code from it]
Actually, it now seems to me that the bracketed clause is perhaps not permitted even by a strict reading, but this is to some extent irrelevant -- the permitting of "observation" seems to allow the following automatable solution: step through the execution of the program instruction-by-instruction (for instance, use si in gdb, or a virtual machine as with valgrind), noting what the instruction and address and registers are, and just log all of this. It might run 100x or more slower, but that is not too important. Then post-process the dump of this data in whatever manner you please, obtaining function structure, data flow, etc. I think the main difficulty would be in determining every possible value of various arrays (a lawyerly reading of "observe" would almost by definition allow one to note whatever data is actually accessed from tables while the program is running, but it is not so clear for other data]. Again it seems to me that the intent of the law could be made more precise by using stronger wording [perhaps "automated observation" should be explicitly verboten?].

User avatar
lmader
Posts: 70
Joined: Thu Jun 10, 2010 3:22 am

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Post by lmader » Sat Dec 04, 2010 6:54 pm

Sean Evans wrote:
Ovyron wrote:
Sean Evans wrote:Sean Evans <----My Real Name!
What does the real name of someone has to do with anything, attacking someone because he uses a nick seems like an ad hominem attack.
This statement from yet another anonymous troll :evil:

Cordially,

Sean Evans <---- Still my real name!
I would like to point out that just having a name on one's post is no guarantee that it is in fact the person's real name. Even if they claim that it is. I have no way of knowing that Sean Evans is in fact that poster's name. Has anyone on this board actually met Sean Evans? I think he's hiding behind a fake pseudonym.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Post by BB+ » Mon Dec 06, 2010 5:46 am

[Note that Rybka 1.5.32 beat Fruit X 05-21 in Round 9 of the last]
The game is rather hiliarious. Fruit manages to lose rook and gh pawns against rook and fgh pawns -- playing the strong side. :!: I guess one could politely say it was a nice job by Rybka 1.5.32 to penetrate with the king, having cut-off Black's with the rook.
[Event "ChessWar V E 40m/20'"]
[Round "9.2"]
[White "Rybka 1.5.32"]
[Black "Fruit X 05-21"]
[Result "1-0"]

1. c4 {0} 1... Nf6 {0} 2. d4 {0} 2... e6 {0} 3. Nf3 {0} 3... d5 {0} 4. Nc3 {0}
4... Be7 {0} 5. Bg5 {0} 5... h6 {0} 6. Bh4 {0} 6... O-O {0} 7. e3 {0} 7... b6 {
0} 8. Be2 {0} 8... Bb7 {0} 9. Bxf6 {0} 9... Bxf6 {0} 10. cxd5 {0} 10... exd5 {0
} 11. b4 {0} 11... c6 {0} 12. O-O {0} 12... a5 {0} 13. b5 {0} 13... c5 {
0.15/12 37} 14. Ne5 {0} 14... cxd4 {0.15/12 38} 15. exd4 {-0.50/13 38} 15...
Bxe5 {0.29/12 45} 16. dxe5 {-0.50/13 50} 16... Nd7 {(d4) 0.26/12 27} 17. Qd4 {
0.00/12 42} 17... Rc8 {0.23/12 50} 18. Rad1 {0.00/12 53} 18... Qc7 {0.02/13 40}
19. Nxd5 {0.00/13 53} 19... Bxd5 {-0.01/13 28} 20. Qxd5 {0.00/13 41} 20... Nxe5
{0.00/13 40} 21. f4 {0.00/12 42} 21... Nc4 {(Cg6) -0.03/13 43} 22. Qd4 {
(Fxc4) -0.06/12 54} 22... Rfe8 {(Ca3) -0.11/13 43} 23. Bxc4 {-0.06/13 52} 23...
Qxc4 {-0.18/13 21} 24. Qxb6 {-0.37/12 39} 24... Qxa2 {-0.23/13 44} 25. Ra1 {
-0.31/12 38} 25... Qb2 {-0.33/12 53} 26. Rfb1 {(Tab1) -0.25/11 53} 26... Qe2 {
(Dc2) -0.40/12 53} 27. Kh1 {(Tf1) -0.18/12 63} 27... a4 {-0.41/11 48} 28. Qa5 {
(Txa4) -0.25/13 111} 28... Ra8 {(Tc2) -0.47/11 31} 29. Qc3 {-0.25/12 95} 29...
Rec8 {(Te3) -0.39/11 46} 30. Qe5 {(Dg3) -0.18/12 28} 30... Qxe5 {-0.73/15 37}
31. fxe5 {-1.37/15 46} 31... Rc5 {-0.83/15 50} 32. Kg1 {(e6) -1.37/14 42} 32...
Rxe5 {-0.87/14 45} 33. b6 {(Tb4) -1.37/14 35} 33... Re7 {(Te4) -0.90/14 39} 34.
Kf2 {-1.43/14 31} 34... Rb7 {-0.91/14 34} 35. Kf3 {(Tb4) -1.50/13 24} 35... Ra6
{-1.07/14 49} 36. Rb4 {(h4) -1.50/13 26} 36... Raxb6 {-1.12/14 45} 37. Rxb6 {
-1.56/15 23} 37... Rxb6 {-0.97/16 26} 38. Rxa4 {-1.56/13 14} 38... Rb3+ {
(g6) -1.04/16 45} 39. Kg4 {-1.50/13 10} 39... Rb2 {-1.02/17 68} 40. Kf3 {
-1.50/13 14} 40... Kh7 {(g5) -1.03/17 71} 41. h4 {-1.56/14 83} 41... Kg6 {
(h5) -1.03/16 56} 42. Rg4+ {(g3) -1.43/13 28} 42... Kf6 {-1.03/16 28} 43. Rf4+
{-1.43/13 28} 43... Ke6 {(Re7) -1.02/15 22} 44. Re4+ {-1.31/12 37} 44... Kd6 {
(Rd7) -1.02/15 31} 45. Rd4+ {-1.37/12 35} 45... Ke7 {-1.03/15 26} 46. Re4+ {
-1.37/12 36} 46... Kd7 {(Rf8) -1.02/16 28} 47. Rf4 {(Td4+) -1.37/13 33} 47...
Rb3+ {-1.08/14 22} 48. Kg4 {-1.37/14 39} 48... Ke6 {-1.06/15 29} 49. Re4+ {
-1.43/13 43} 49... Kd6 {-1.06/15 29} 50. Kf4 {(Ta4) -1.43/13 37} 50... Rb2 {
(g6) -1.13/14 48} 51. g4 {(Rf3) -1.37/12 39} 51... Rh2 {(Tf2+) -1.11/13 29} 52.
h5 {(Rg3) -1.37/13 32} 52... Rf2+ {(Th1) -1.16/14 32} 53. Kg3 {
(Re3) -1.43/13 36} 53... Ra2 {(Tf1) -1.14/15 24} 54. Re8 {(Rf4) -1.37/13 34}
54... Ra6 {-1.14/16 28} 55. Kf4 {(Te2) -1.43/13 34} 55... Kd7 {-1.14/16 28} 56.
Re2 {-1.50/13 28} 56... Rf6+ {(Te6) -1.15/17 20} 57. Kg3 {-1.50/15 74} 57...
Re6 {-1.15/17 17} 58. Rd2+ {(Tb2) -1.50/14 89} 58... Rd6 {(Re7) -1.15/18 27}
59. Re2 {(Ta2) -1.50/14 32} 59... Rc6 {(Te6) -1.14/15 18} 60. Rf2 {
(Rf4) -1.43/13 27} 60... Ke7 {(Tc3+) -1.14/16 22} 61. Re2+ {-1.50/13 27} 61...
Kd6 {(Te6) -1.14/16 30} 62. Rd2+ {(Rf4) -1.18/13 27} 62... Kc7 {
(Re5) -1.04/14 30} 63. Rf2 {-1.12/13 25} 63... Rc3+ {(f6) -1.00/14 22} 64. Kh4
{(Rg2) -1.12/14 25} 64... f6 {-0.98/16 22} 65. Rd2 {(Ta2) -1.18/14 25} 65...
Re3 {(Ta3) -1.02/17 44} 66. Rd4 {(Tc2+) -1.18/14 25} 66... Kc6 {
(Te7) -1.02/17 24} 67. Rd8 {(Tc4+) -1.18/14 28} 67... Rb3 {(Te7) -1.01/16 72}
68. Rd2 {(Tg8) -1.18/14 24} 68... Ra3 {(Te3) -1.01/16 41} 69. Rd4 {
(Td8) -1.18/14 26} 69... Kc7 {(Ta5) -1.02/17 19} 70. Rd5 {(Td2) -1.12/13 33}
70... Kc8 {(Ta8) -1.02/18 29} 71. Rd6 {(Td2) -1.12/14 21} 71... Ra2 {
(Ta5) -1.01/16 19} 72. Kg3 {-1.06/14 26} 72... Kc7 {(Ta7) -1.01/16 30} 73. Rd4
{(Td3) -1.06/13 14} 73... Ra1 {(Ta8) -1.01/14 30} 74. Kf3 {(Td2) -1.06/12 18}
74... Ra3+ {(Ta5) -0.96/13 53} 75. Ke4 {-1.06/13 13} 75... Ra5 {-0.95/14 34}
76. Rd1 {(Tc4+) -1.06/12 10} 76... Re5+ {(Rc6) -0.94/14 38} 77. Kf4 {
-1.06/13 14} 77... Re2 {(Tb5) -0.92/14 38} 78. Kf5 {-0.81/12 8} 78... Re7 {
-0.92/14 15} 79. Kg6 {(Tc1+) 0.00/13 9} 79... Kc8 {0.00/16 20} 80. Rd2 {
(Td4) 0.00/13 7} 80... Rc7 {(Rc7) 0.00/18 26} 81. Re2 {(Td4) 0.37/15 88} 81...
Kd8 {0.00/18 29} 82. Re4 {(Td2+) 1.62/14 34} 82... Ra7 {0.00/17 29} 83. Rc4 {
(Td4+) 1.75/14 28} 83... Ke8 {(Td7) 0.36/12 19} 84. Rc8+ {1.93/14 31} 84... Kd7
{0.99/18 26} 85. Rg8 {1.93/15 35} 85... Ke6 {(Ta4) 1.15/17 51} 86. Rxg7 {
1.93/15 35} 86... Ra2 {(Ta8) 1.12/17 22} 87. Rf7 {(Rxh6) 2.18/15 36} 87... Rg2
{(Re5) 1.24/17 52} 88. Rxf6+ {4.50/15 44} 88... Ke5 {1.27/17 23} 89. Rf5+ {
5.43/14 25} 89... Ke6 {(Re4) 4.99/19 228} 90. g5 {5.81/14 34} 90... Rd2 {
(Ta2) 5.11/19 22} 91. Rf6+ {6.87/13 33} 91... Ke5 {(Re7) 5.14/16 22} 92. Kxh6 {
(gxh6) 8.12/14 33} 92... Rc2 {(Td8) 6.44/14 75} 93. Rf1 {(Rg7) 8.43/13 30}
93... Rc8 {(Rd4) 6.44/14 19} 94. g6 {(Rg7) 8.56/14 52} 94... Kd4 {
(Td8) 7.15/14 21} 95. g7 {8.62/13 50} 95... Ke4 {(Ta8) 10.95/13 69} 96. Kg5 {
(Rh7) 8.87/12 28} 96... Kd3 {15.09/13 68} 97. h6 {8.93/12 41} 97... Ke2 {
16.07/13 29} 98. Rf5 {9.06/12 32} 98... Ke3 {(Tc1) 16.07/12 16} 99. h7 {
9.12/11 25} 99... Rc2 {(Tc1) #7/11 15} 100. Re5+ {(g8D) 9.56/11 29} 100... Kd3
{#8/11 103} 101. g8=Q {#10/11 29} 101... Rg2+ {#7/12 13} 102. Kf6 {
(Rh4) 0.01/0 0} 102... Rf2+ {#6/9 15} 103. Ke7 {(Re6) 0.01/0 0} 103... Rh2 {
(Rd4) #5/13 8} 104. Qd5+ {(Dg3+) 0.01/0 0} 104... Kc2 {#5/15 8} 105. Qc4+ {
0.01/0 0} 105... Kd1 {(Rb1) #4/47 4} 106. Qd3+ {0.01/0 0} 106... Kc1 {#3/47 0}
107. Re1+ {0.01/0 0} 107... Kb2 {#2/1 0} 108. Rb1+ {0.01/0 0} 108... Ka2 {
#1/1 0} 109. Qb3# {0.01/0 0} 1-0

Post Reply