Wine disassembly and reverse engineering rules.

Kai Blin kai.blin at gmail.com
Sun Aug 5 02:58:31 CDT 2007


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.

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.

> Another problem is that i want to introduce something which i am not
> sure is covered or not by what is "not allowed".
>
> I want to introduce a function which can check if SendMessage() or
> PostMessage() was the reason a message ended up in a Proc handler.

[...]

> I don't think there is a problem as i am just using documented APIs from
> MSDN, but since it includes looking at the call stack, i was curious if
> there might be a legal problem.

If you are just using the documented API, this is just how Wine tests are 
done. 

> I don't want to put the idea to use or release it if it in any way is
> illegal.

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."

Hope that helps,
Kai

-- 
Kai Blin
WorldForge developer  http://www.worldforge.org/
Wine developer        http://wiki.winehq.org/KaiBlin
Samba team member     http://www.samba.org/samba/team/
--
Will code for cotton.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20070805/b2ddca93/attachment.pgp


More information about the wine-devel mailing list