For non-technical readers the reverse engineering process goes this way, I'll start with the original program.tiger wrote:chrisw wrote:Trolling again, Christophe.
At the start of this process, I reported back to CCC that Vas had said he was happy to answer a list of concerns if your side was to produce one.
Your side, including Zach, if I remember correct, said, in effect that I was baised, they didn't trust me to send the questions or censor them or whatever, and they would do the sending themselves.
I paraphrase that as a 'ban' on me to be any more involved in trying to get your side (a) to formally formulate its position and (b) to 'send' the position from the CCC to Vas when it was prepared.
You are certainly a talented mind reader engineer artist if you call this a "ban".
I call it 'ban' because it was actually quite rude of you, I thought. Obviously I was never going to do anything else than transmit accurately whatever concern list was prepared.
Go troll yourself. There's little point in discussion with you because (a) you should be preparing your attack evidence, not wasting your time here in content free threads and (b) you're reducing the interaction between me and you to bad-tempered, content free nonsense, which ultimately just demeans the process.
What is the point in preparing anything if you brush it away with techniques such as calling disassembling "creative reverse engineering by an artist" and such?
Reverse engineering and trying to have the reconstructed source fit the source of the original work is perfectly valid. It is what the courts do when they use "semantical abstraction".
You are trying to picture this as a completely non-scientific process when it is the contrary.
Either you believe it is not scientific, and then you are a really poor expert, or you know it is valid and you try to deceive people with your allegations.
In any case, it is what the courts do. Sorry if you do not like the process.
// Christophe
Vas writes source code, in C language (we assume). This source code contains huge amounts of text and named labels. The names will be of variables, functions and so on. The C code is readable, it is not too far from actual english, in the sense that a programmer can generally understand it and follow its algorithmic reasoning.
Vas then puts this source code through a compiler, the compiler produces executable code which is what you buy when you buy Rybka. The executable code doesn't contain all those variable and function names or other pieces of anymore, they are all thrown away. The executable is generally unreadable, in that it's too complex, contains no label information and is written in assembler language which is several steps too far removed from English.
Additionally, the executable is put through an optimiser which changes the order that instructions are executed in, and does some other fancy tricks, further removing the executable code from its parallel prior existence as C code.
Now along comes the reverse engineer. His task is to take this optimised executable code and reconstitute the original C code. He has no labels or function names (they've been thrown away). He has to hunt around in the relatively unreadable assembler code trying to work out what does this and what does that. He guesses at what variables do. He creatively assigns names to variables and functions. Gradually and time comsumingly, he manages to put together bits and pieces of C language with labels names and function names that are his guesses, inventions, intuitions. Sometimes he'll get it right and sometimes wrong. Art not science.
Christophe appears angry because he claims I am trying to trash the entire reverse engineering process. Just to assuage Christophe's anger I can state, no, I'm not trying to do that. I'm trying to provide some balance to the idea that the reverse engineered C code is 100% scientific and 100% accurate, because it is not. I'm also pointing out that the label and function names contained within it are *not* in the original Vas source, but are created by the reverse engineer in deliberate parallel with the target program that is accused of being copied.
I'm also trying to point out, as was Ed with his tunnel vision post, that the reverse engineer, if not totally impartial, runs the risk of finding things that are not there.
Ultimately, the purpose of this critique is to prevent the antis, or their program knowledgable ones, from being able to say: "we disassembled it and found it was the same" and for all the readers just to accept that.
A critique of the disassembly process as ducking stool, so to speak.
Their disassembly has to be open to criticism and open to repeat disassembly process and alternative possibility by less involved people.
No more and no less.