[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Reverse Engineering and Derived works (Re: [DotGNU]RFC : [Proposals]ILAu

From: James Michael DuPont
Subject: Reverse Engineering and Derived works (Re: [DotGNU]RFC : [Proposals]ILAutoStubber Proposal)
Date: Fri, 7 Mar 2003 00:33:47 -0800 (PST)

--- Gopal V <address@hidden> wrote:
> If memory serves me right, James Michael DuPont wrote:
> > but there is a big problem with this :
> > you need to link to the non-free lib and have it available to run
> this
> > process.
> Nope ... actually running the reflection app with something like 
> Assembly.Load() might work well for most of our purposes. This is
> not necessarily "linked in" , but the name is provided at runtime.


Gopal, you still need to have a copy of the non-free lib.
You need to copy it into memory. You need to copy parts of it into your

> > > That would solve a lot of issues related to "reverse-engineering"
> > > claims.
> > 
> > I don't agree with your conclusion.
> > Any automatic transformation is a process. Derived works are the
> the
> > output of copyrighted input.
> Huh ? "Derived works" ? .... All I said was "reverse-engineering" . 
> Extracting the API via reflection will look better than a C program
> which produces the same output by analzying the binary. It's a thin
> line of legality (because the EULA restricts reverse-engineering).

Reverse Engineering is essentially a Derived work.  That is what the
copyright law is based on. Patents are a different story.

ILrun is a c program. A C# program is just a macro language that gives
commands to ILRun. I think that there is no difference here at all,
the issues are : 

1. Do you need to have a copy of the non-free library at all?
2. Do you mechanically create a derived work from it?
3. Do you contains copies of the source code of it?

If any of these are true, then you are opening yourself up to a
possible  Derived work and copyright violation. My argument is simple,
take the calls to the non free library as used in free software.
No one can argue that using windows forms makes your software non-free.
Who can argue that extracting mechanically all the usages of winforms
from free software is all of a sudden non free. 

Therefore is it safe to have copies of free software. It is safe to
mechanically extract code from free software. It is safe to contain
copies of the free software.
All we need to do this properly is the permission of a group of people
who has a large application written using each this non-free library to
use the results of the non-free compile to extract parts of that.

Nonne can say that the IL produced by your app is not a derived work,
so even if you license your app under the GPL, the IL is also under the
GPL. If we get a large library of IL and DLLS under the GPL and GPL
compatible license, then we can safely and legally extract all the
usages of non-free libs from there, us the ILStubberConstructive to
extract the calls and create stubs only from the used functions, and
liberate them.

If you want some pointers on derived works, please read these threads
[1] [2] and this document [3].

I would say that what I am proposing is real competition :

1. Marketing:  finding out the market for replacement, what DLLS need

2. Aggressive Competition:  we approach the customers, the users of
these dlls, we sell the on the idea of Liberating their software. We
offer to take the hard and creative work that they have done and remove
the dependany on non-free software.

3. Re implementation
We re implement the functionality used of the customers, with free
software. We don't have to re implement all the functions, all the
concepts, because not all are used. By the usage of ILStubInterceptor
we can find out what code is used the most. 

I think this is completely fair and legal way to replace non-free
software with free software. 

My proposal requires that some willing contributor has done the
creative manual work to use a non-free software, and allows us to
capitalizes on that creative work.


[1] The onion problem - Question on derived works- Thread from JMD]

[2] On: "Derivative Work" for Software Defined

 A genuine competitor will try to reduce their use of the intermediate
description generated by reverse engineering to the absolute minimum
necessary, to avoid copying, whereas a pirate will attempt to use the
reverse engineered code to the maximum extent possible and add the
minimum of independently created material, to make the product a
"lookalike" in so far as possible, and to reduce the amount of effort
they use.

James Michael DuPont

Do you Yahoo!?
Yahoo! Tax Center - forms, calculators, tips, more

reply via email to

[Prev in Thread] Current Thread [Next in Thread]