Wine disassembly and reverse engineering rules.

Peter Dons Tychsen donpedro at tdcadsl.dk
Sun Aug 5 10:29:03 CDT 2007


On Sun, 2007-08-05 at 17:27 +0200, Peter Dons Tychsen wrote:
> On Sun, 2007-08-05 at 09:58 +0200, 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.
> > 
> > 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
> > 
> 
> Thanks for your comments Kai.
> 
> > 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.
> I thing killing is a bit off topic :-)
> 
> However i do get your point about making it clear. It would be difficult
> to handle. OK, but changing the text i referred to would be a good start
> though. 
> 
> The text could be changed to (or similar):
> 
> "Disassembling native Windows DLLs is not allowed in the Wine project
> due to legal implications. However, this does not change much, as
> disassembling native Windows DLLs is virtually always useless, as as
> technique disassemly is usually used to find out why the application is
> crashing in an otherwise unexplainable way."

OK. I will go ahead and post my proposals.
Thank you for helping out. Always good to be on the safe side.

/Pedro




More information about the wine-devel mailing list