Kai Blin wrote: > On Sunday 05 August 2007 04:23:15 Peter Dons Tychsen wrote: > > >> It was regarding the fact that it is not allowed to disassemble and >> reverse engineer Microsoft DLLs. I understand this part, as their >> license prohibits it (EULA). >> > > Please note that "reverse engineering by disassembly" is not the same > as "reverse engineering by black box testing". The former is not only > disallowed by many license agreements, it's actually a violation of copyright > in most (western) countries. >
Not all western countries by far. > Reverse engineering by black box testing is an established and legal method > in > industry. Wine uses this method extensively by writing test cases. > > >> However, i would be more clear if someone would make these rules >> commonly available on the WineHQ website. >> > > [Omitting a quote about disassembly being useless] > > >> This should probably be fixed. It should make it crystal clear was is >> allowed and what is not. This would help avoid situation like the one >> mentioned above. >> > > It's also not allowed to break other laws while developing software. Where > would you draw the line? Disassembling software is (almost always) illegal. > Killing people is illegal. Should both be in the development guide? I would > assume common sense would tell people that they should only do things that > are legal. > Dissambling is not illegal. Disassembling and then writing another implementation is against copyright. [snip MSDN etc] > This is the common sense I was talking about before. Thank you for asking. > > >> Please think long and hard before you reply. >> > > The usual disclaimer about how I'm not a lawyer and can't give legal advice > applies, of course. But a rule of thumb is: "If you never looked at > disassembled code and you are using tests using the Windows APIs to determine > how the API you're interested in works, you're fine." > > I also can't see how it would be illegal to, for instance, person A disassembling a DLL, then writing documentation for that DLL. Then for person B to reimplement said DLL by means of the specification specified by person A. This is how Compaq legally reverse engineered the IBM PC BIOS. I don't see how there would be any difference writing the documentation as unit tests or english. I.e. disassembling for the purpose of creating unit tests must be ok, AFAIK. regards, Jakob