Wine disassembly and reverse engineering rules.

Jakob Eriksson jakob at vmlinux.org
Sun Aug 5 11:06:28 CDT 2007


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




More information about the wine-devel mailing list