Reversing : The Hacker's Guide to Reverse Engineering

(ff) #1

License Agreement Considerations


In light of the fact that other than the DMCA there are no laws that directly
prohibit or restrict reversing, and that the DMCA only applies to DRM prod-
ucts or to software that contains DRM technologies, software vendors add
anti-reverse-engineering clauses to shrink-wrap software license agreements.
That’s that very lengthy document you are always told to “accept” when
installing practically any software product in the world. It should be noted
that in most cases just using a program provides the legal equivalent of sign-
ing its license agreement (assuming that the user is given an opportunity to
view it).
The main legal question around reverse-engineering clauses in license
agreements is whether they are enforceable. In the U.S., there doesn’t seem to
be a single, authoritative answer to this question—it all depends on the spe-
cific circumstances in which reverse engineering is undertaken. In the Euro-
pean Union this issue has been clearly defined by the Directive on the Legal
Protection of Computer Programs [EC1]. This directive defines that decompi-
lation of software programs is permissible in cases of interoperability. The
directive overrides any shrink-wrap license agreements, at least in this matter.


Code Samples & Tools


This book contains many code samples and demonstrates many reversing
tools. In an effort to avoid any legal minefields, particularly those imposed by
the DMCA, this book deals primarily with sample programs that were specif-
ically created for this purpose. There are several areas where third-party code
is reversed, but this is never code that is in any way responsible for protecting
copyrighted materials. Likewise, I have intentionally avoided any tool whose
primary purpose is reversing or defeating any kind of security mechanisms.
All of the tools used in this book are either generic reverse-engineering tools or
simply software development tools (such as debuggers) that are doubled as
reversing tools.


Conclusion


In this chapter, we introduced the basic ground rules for reversing. We dis-
cussed some of the most popular applications of reverse engineering and the
typical reversing process. We introduced the types of tools that are commonly
used by reversers and evaluated the legal aspects of the process. Armed with
this basic understanding of what it is all about, we head on to the next chap-
ters, which provide an overview of the technical basics we must be familiar
with before we can actually start reversing.


Foundations 23
Free download pdf