Despite the popularity of the microprocessor reverse engineering concept of reverse engineering with sections of the engineering community, the legislative position restricts reverse engineering of hardware and makes reverse engineering of software legal only under very limited circumstances in Europe.
microprocessor reverse engineering article
In the US, slightly more freedom with
microprocessor reverse engineering
is available to reverse engineers, but great care is still needed to avoid infringement.
This article considers reverse engineering, and the controversial impact of intellectual property law on reverse engineering techniques, in Europe and elsewhere.
The first step, then, is to develop a mental picture of what
reverse engineering is. To do this, it would be useful to start with a simplistic model of engineering itself.
Engineering is the process of turning a specification into a product for performing to it.
A full specification may not only specify what the product has to do, but also specify performance criteria it needs to meet along the way. As the complexity of IT systems grows, so does the importance of a good specification.
In between the microprocessor reverse engineering specification and the product is the engineering or implementation process, which involves some human creativity, and an increasing degree of automation.
It is convenient to think in terms of "layers" or "levels" of abstraction. Thus:
A written functional specification for human consumption is a "top level" description;
An abstracted structural description (for example source code or circuit diagrams), for human consumption (but usually machine readable), is an "intermediate level" description;
A detailed structural description (e.g. assembler, or a node list) for machine consumption, but possibly comprehensible by humans, is a "low level" description; and
The product (a chip storing machine code, an integrated circuit or a circuit board), which is usually incomprehensible to human, constitutes the lowest level.
Nowadays, in many processes the lower level descriptions are unnecessary and, if produced at all, are produced only for
documentation purposes rather than during the design process.
Often, the same specification can be implemented in many different ways, for example by using different target platforms (e.g. microprocessors) or different engineering tools and techniques (e.g. CMOS or NMOS). There is thus one to many relationship between a top level specification and products produced from microprocessor reverse engineering.
|
|