On Sunday 21 May 2006 3:23 pm, Luke Dunstan wrote:
> From: Danny Smith <dannysmith@...>
> >The original author of this file extracted the *names* , not the
> > actual 128-bit ID.
> >How is that different from extracting the names of exports from system
> >dll's to build import libs?
> Yes, I agree that this is fine.
Sorry guys, but I *don't* agree.
The difference is that the system DLLs are *operating system* components;
we may legitimately assume that every user of the OS holds a valid
licence to deploy those DLLs. That legitimises, at least as I understand
UK law, reverse engineering to achieve interoperability with those OS
components. (And do please note that, while *I* am bound by UK law, it
may be different for you),
OTOH, uuid.lib is *not* an OS component; it is a component of a SDK,
which independent developers may license individually. By the same
criterion, those developers who *have* licensed the use of uuid.lib may
reverse engineer the interface, if required, to allow them to link their
own code against the library. They may then, if the SDK licence permits
it, (as would normally be the case), distribute their own application in
binary form. What they *cannot* do, (unless also permitted by the SDK
licence), is redistribute the library itself; nor can they legitimately
use the information they have obtained by reverse engineering of the
original library, even if such reverse engineering is restricted to
extracting only entity names, to create a replacement for the original
library, which they then distribute; that simply cannot be construed as
`reverse engineering for the purpose of achieving interoperability', and
therefore does not satisfy the criterion for legitimate reverse
Of course, if the necessary information can be extracted from the
registry, the SDK licensing issue does not apply. The registry is the
ultimate definition of the OS environment, in which *every* application
must operate, and each and every application is therefore entitled to
glean whatever information it requires, by whatever means are
appropriate, from that resource.
BTW, do we know how the original author established the 128-bit ID
values, if only the names were reverse engineered?