chrisw wrote:bob wrote:chrisw wrote:bob wrote:fern wrote:...the argument that points how many programs or even all use the same algorythms is irrelevant as much they can be writen in so many different ways. So, he add, the reasonning that programs share lot of stuff, as Fabian said, would be not valid.
Ok. Then, if it is so and surely must be because, after all, Bob Hyatt and none other said that, if really the line of code and how was writen is the core of the issue, then let the attackers of Rybka originality show us specific lines of code that are equal to those from fruit.
Of course I wonder how they will do such a thing as much I presume the Rybka lines of code are not easily accesible.
Wondering regards
fern
What is being done is to take the executable, and run in thru a disassembler which produces the assembly language code the compiler produced when the source was compiled. An experienced programmer can then take that assembly language code and reconstruct the C source code it came from.
inc i => i++; in C for example.
It takes time because the optimizer in the compiler re-orders instructions to make them run as efficiently as possible, so the human reverse-engineer has to undo all of that...
Perhaps you should also point out that when the executable code is compiled from the source in the first place, enormous amounts of information are thrown away, so to re-generate the source from an executable requires creativity and massive amounts of creative guesswork from the reverse engineer. Better to call him reverse creative artist actually.
Your final alleged C source, rehashed from the executable is, shall we say, open to question.
Who tells you the label names, for example? Oh whoops, Reverse creative artist calls them himself, whatever he wants to call them, and so on.
Perhaps for you. Not for me. I can't reconstruct variable names. But I can figure out what code is doing and then deduce reasonable names, given enough interest to do so.
Yeah, yeah, yeah, Bob.
Only there won't be deduced "reasonable names", there will be deduced deliberately, names that cirrespond to names in the target program, to make it seem there are more correspondences than there really might be.
That's the creativity.
Do you deny the use of identical names as target program wherever possible will be used? No, of course you don't. Because already that is what has happened in the disassemblys we've been presented with.
Creative creation of variable and function names, deliberately to match the target.
Let's be quite honest to all the lays trying to follow this, shall we?
I will say it again. If the instructions match exactly, and I then copy the names from one program and use them in the other on the same instructions, and everything matches and works properly, and suddenly the two programs appear to be identical, is that "creating" evidence or "discovering" evidence.
Again, I would be willing to challenge any two people to write a 500 line piece of assembly language code that implement the same algorithm. Then let's see if we can swap labels/names between the two and not break one. What are the chances? zero.
So if I match up the instructions side by side, and where I have a hex address I consistently replace that by the name from the second program, and it then looks the same in terms of instructions and varaiable and procedure names, that is not convincing? Only to someone that has never written a serious program of any kind, or to someone that doesn't want to be convinced in the first place and uses the "ostrich" approach.
If someone was "creating instructions" to add, that would be different. What you are claiming is what every entry-level student tries when he decides he doesn't have the time or skill to write his own program, so he plagiarizes someone else's program, but he knows enough to change the variable and procedure names. And according to you those can not be called equal. According to 99.999% of the academic/professional world, they would be called duplicates, and the only real issue becames who wrote what and who copied.
This trying to discount everything being said looks foolish. "GPL is unenforcable." (courts seem to disagree as do businesses that settle before going to court.) "wording in GPL is ambiguous". Apparently not to the courts. Change the names when trying to match up two programs is unacceptable, when that is the _first_ thing we look for when we notice similar program structure.
You can't discount everything. It slowly adds up.