 |
Priorty
Interrupt
by Steve Ciarcia
It's
All in How It's Done
|
Recently, a
small manufacturing company approached me about designing
an embedded controller to replace one they currently used.
The present unit and its operating software were purchased
as an off-the-shelf commercial product. When the OEM product
doubled in price, the company simply decided to eliminate
the supplier and make an equivalent unit. They asked me
if I would reverse engineer the whole thing for them.
I made up a
plausible excuse about having too many design jobs in
the works and gracefully declined the opportunity. The
task had some obvious challenges, but experience has taught
me that reverse engineering involves considerably more
than just technical issues.
On the surface,
I don't have a philosophical objection with reverse engineering.
Properly done, it's completely legal. In fact, evaluating
a competing commercial design is an established practice
in any new product design or product improvement. Certainly,
everyone has heard the story about the BMW plant with
all the disassembled Lexus cars in the corner. Unfortunately,
in today's litigious society, designers and consultants
have to beware of becoming so mesmerized by the technical
challenge that they get oblivious to important legal issues.
In the electronics industry, producing a clone of a piece
of hardware or software is an established practice. It's
using the proper technique to make a work-alike clone
design that's the real issue.
First of all,
be aware that a commercial product can be simultaneously
covered by patent, trade secret, copyright, and contract
laws (God bless those lawyers!). For reverse engineering
to be legal, it must be legal under all these different
laws. Here's what I typically watch out for.
Frankly speaking,
reverse engineering won't help you as a defense against
patent infringement. If your clone still infringes a patent,
it won't make any difference what technique you employed
to make it. The only solution here is to make sure that
your design doesn't still include all the elements of
the patented device.
As far as trade
secrets go, it's more often an issue of misappropriation
than reverse engineering. If you've got super taste buds
and legitimately arrive at the formula for Coca-Cola,
it should be defensible. However, if a disgruntled employee
E-mails it to you, you had better think about the consequences
before getting into the soft-drink business.
Copyrights are
the primary protection for the software industry. It is
permissible to dissemble object code in order to understand
the functional operation of programs, but any effort should
have a substantial paper trail showing how any clone was
designed. Most importantly, the people responsible for
disassembling code can only use it to produce a written
specification. It should be a completely separate design
team that uses that spec to create the new work-alike
product. This was how the PC BIOS got into all those clones.
Finally, contract
law seems to be the way most software companies fill the
legal loopholes. These contracts usually contain so much
legalese they could fill a law book. Perhaps you've noticed
the shrink-wrapped impolite and severely worded licensing
agreements on most software packages: "By opening
this wrapper, I agree to.(give my first born, etc., etc.)."
Normally, whatever a contract says goes. The only exceptions
are edicts that would be challenged under a standard contract
defense.
The specific
intention of a software license is to prohibit the licensee
from disassembling or decompiling distributed code and
to keep the licensee from discovering any unique programming
techniques or secrets. In my opinion, overstressing the
threats is counterproductive. There is also some argument
whether banning decompilation can really be upheld.
Interestingly,
microcomputer chip layouts can't be patented or copyrighted.
They aren't considered novel enough for patent protection,
and their utilitarian nature and application makes them
ineligible for copyright protection. That doesn't mean
they're an easy knockoff, however. To prevent chip piracy,
manufacturers frequently use manufacturing techniques
that make tracing the microcircuitry very difficult, as
well as including nonfunctional patterns that help identify
a copied layout. Reverse engineering is legal-copying
isn't.
Financial reward
is the obvious incentive that drives protection as well
as innovation. Finding a middle ground that accommodates
free expression without denying profit motive requires
a careful balance between property rights and fair use.
You certainly
don't have to get uptight every time someone mentions
decompiling code or cloning a piece of hardware. In my
experience, the copyright police aren't going to kick
in your door if you disassemble Windows 98 "to better
understand it." However, you can probably expect
Bill Gates and about a hundred lawyers to personally get
in your face if you try to sell what you find.

steve.ciarcia@circuitcellar.com
Published: July-1998