Reverse engineering
Reverse engineering is the process of discovering the technological principles of a device,
object or system through analysis of its structure, function and operation. It often involves taking
something (e.g., a mechanical device, electronic component, or software program) apart and
analyzing its workings in detail to be used in maintenance, or to try to make a new device or
program that does the same thing without using or simply duplicating (without understanding)
any part of the original.
Reverse engineering is taking apart an object to see how it works in order to duplicate or enhance
the object. The practice, taken from older industries, is now frequently used on computer
hardware and software
The process of duplicating an existing component, subassembly, or product, without the aid of
drawings, documentation, or computer model is known as reverse engineering. Reverse
engineering is very common in such diverse fields as software engineering, entertainment,
automotive, consumer products, microchips, chemicals, electronics, and mechanical designs. For
example, when a new machine comes to market, competing manufacturers may buy one machine
and disassemble it to learn how it was built and how it works. A chemical company may use
reverse engineering to defeat a patent on a competitor's manufacturing process. In civil
engineering, bridge and building designs are copied from past successes so there will be less
chance of catastrophic failure. In software engineering, good source code is often a variation of
other good source code.
Reverse engineering enables the duplication of an existing part by capturing the component's
physical dimensions, features, and material properties. Before attempting reverse engineering, a
well-planned life-cycle analysis and cost/benefit analysis should be conducted to justify the
reverse engineering projects. Reverse engineering is typically cost effective only if the items to
be reverse engineered reflect a high investment or will be reproduced in large quantities. Reverse
engineering of a part may be attempted even if it is not cost effective, if the part is absolutely
required and is mission-critical to a system.
"Reverse engineering is the process of analyzing a subject system to create representations of the
system at a higher level of abstraction."[6] It can also be seen as "going backwards through the
development cycle"
It can be said that reverse engineering begins with the product and works through the design
process in the opposite direction to arrive at a product definition statement (PDS). In doing so, it
uncovers as much information as possible about the design ideas that were used to produce a
particular product.
OVERWIEW
Reasons for reverse engineering:
Interoperability.
Lost documentation: Reverse engineering often is done because the documentation of a
particular device has been lost (or was never written), and the person who built it is no
longer available. Integrated circuits often seem to have been designed on obsolete,
proprietary systems, which means that the only way to incorporate the functionality into
new technology is to reverse-engineer the existing chip and then re-design it.
Product analysis. To examine how a product works, what components it consists of,
estimate costs, and identify potential patent infringement.
Digital update/correction. To update the digital version (e.g. CAD model) of an object to
match an "as-built" condition.
Security auditing.
Acquiring sensitive data by disassembling and analysing the design of a system
component.[3]
Military or commercial espionage. Learning about an enemy's or competitor's latest
research by stealing or capturing a prototype and dismantling it.
Removal of copy protection, circumvention of access restrictions.
Creation of unlicensed/unapproved duplicates.
Materials harvesting, sorting, or scrapping.[4]
Academic/learning purposes.
Curiosity.
Competitive technical intelligence (understand what your competitor is actually doing
versus what they say they are doing).
Learning: learn from others' mistakes. Do not make the same mistakes that others have
already made and subsequently corrected.
In some situations, designers give a shape to their ideas by using clay, plaster, wood, or foam
rubber, but a CAD model is needed to enable the manufacturing of the part. As products become
more organic in shape, designing in CAD may be challenging or impossible. There is no
guarantee that the CAD model will be acceptably close to the sculpted model. Reverse
engineering provides a solution to this problem because the physical model is the source of
information for the CAD model. This is also referred to as the part-to-CAD process.
Another type of reverse engineering involves producing 3-D images of manufactured parts when
a blueprint is not available in order to remanufacture the part. To reverse engineer a part, the part
is measured by a coordinate measuring machine (CMM). As it is measured, a 3-D wire frame
image is generated and displayed on a monitor. After the measuring is complete, the wire frame
image is dimensioned. Any part can be reverse engineered using these methods.
Software reverse engineering is done to retrieve the source code of a program because the source
code was lost, to study how the program performs certain operations, to improve the
performance of a program, to fix a bug (correct an error in the program when the source code is
not available), to identify malicious content in a program such as a virus or to adapt a program
written for use with one microprocessor for use with another. Reverse engineering for the
purpose of copying or duplicating programs may constitute a copyright violation. In some cases,
the licensed use of software specifically prohibits reverse engineering. Someone doing reverse
engineering on software may use several tools to disassemble a program. One tool is a
hexadecimal dumper, which prints or displays the binary numbers of a program in hexadecimal
format (which is easier to read than a binary format). By knowing the bit patterns that represent
the processor instructions as well as the instruction lengths, the reverse engineer can identify
certain portions of a program to see how they work. Another common tool is the disassembler.
The disassembler reads the binary code and then displays each executable instruction in text
form. A disassembler cannot tell the difference between an executable instruction and the data
used by the program so a debugger is used, which allows the disassembler to avoid
disassembling the data portions of a program. These tools might be used by a cracker to modify
code and gain entry to a computer system or cause other harm.
Reverse engineering is an invasive and destructive form of analyzing a smart card. The attacker
grinds away layer by layer of the smart card and takes pictures with an electron microscope.
With this technique, it is possible to reveal the complete hardware and software part of the smart
card. The major problem for the attacker is to bring everything into the right order to find out
how everything works. Engineers try to hide keys and operations by mixing up memory
positions, for example, busscrambling.[18][19] In some cases, it is even possible to attach a probe to
measure voltages while the smart card is still operational. Engineers employ sensors to detect
and prevent this attack.[20] This attack is not very common because it requires a large investment
in effort and special equipment that is generally only available to large chip manufacturers
A Methodology for Reverse Engineering
The term "reverse engineering" includes any activity you do to determine how a product works,
or to learn the ideas and technology that were originally used to develop the product. Reverse
engineering is a systematic approach for analyzing the design of existing devices or systems.
You can use it either to study the design process, or as an initial step in the redesign process, in
order to do any of the following:
Observe and assess the mechanisms that make the device work
Dissect and study the inner workings of a mechanical device
Compare the actual device to your observations and suggest improvements
Before you decide to re-engineer a component, be sure to make every effort to obtain existing
technical data. For example, you can proceed with reverse engineering if replacement parts are
required and the associated technical data is either lost, destroyed, non-existent, proprietary, or
incomplete.
Reverse engineering may also be necessary if alternative methods of obtaining technical data are
more costly than the actual reverse engineering process. Generally, many products are protected
by copyrights and patents. Patents are the stronger protection against copying since they protect
the ideas behind the functioning of a new product, whereas a copyright protects only its look and
shape. Often a patent is no more than a warning sign to a competitor to discourage competition.
If there is merit in an idea, a competitor will do one of the following:
Negotiate a license to use the idea
Claim that the idea is not novel and is an obvious step for anyone experienced in the
particular field
Make a subtle change and claim that the changed product is not protected by the patent
Consider the following ethical uses involved in reverse engineering:
Do not reverse-engineer parts if the procurement contract of the component prohibits
reverse engineering.
Remember to perform reverse engineering using only data that is part of the public
domain.
If you intend to perform reverse engineering, be sure that you:
o Do not have access to proprietary information
o Have not been recently employed by the OEM, or had access to proprietary
information
o Do not visit or tour the OEM's place of business
o Maintain complete documentation of each component you reverse engineer so
there is a record that will stand as proof in court that you have performed reverse
engineering lawfully
Reverse engineering initiates the redesign process, wherein a product is observed, disassembled,
analyzed, tested, "experienced," and documented in terms of its functionality, form, physical
principles, manufacturability, and ability to be assembled. The intent of the reverse engineering
process is to fully understand and represent the current instantiation of a product.
Example of Reverse Engineering
A typical workflow in reverse engineering could involve scanning an object and recreating it.
These steps are illustrated below.
Step 1: A cloud of points taken from scanned data using a digitizer such
as a laser scanner, computed tomography, or faro arms.
Step 2: Convert the point cloud to a polygonal model. The resultant mesh
is cleaned up, smoothed, and sculpted to the required shape and accuracy.
Step 3: Draw or create curves on the mesh using automated tools such as
feature detection tools or dynamic templates.
Step 4: Create a restructured spring mesh using semiautomatic tools.
Step 5: Fit NURBS surfaces using surface fitting and editing tools.
Step 6: Export the resulting final NURBS surface that satisfies accuracy
and smoothness requirements to a CAD package for generating tool paths
for machining.
Step 7: Manufacture and analyze the part for physical, thermal, and
electrical properties.
Turning reality into a virtual representation is being employed in more and more aspects of our everyday
lives. From modeling ancient buildings, production plants, crime scenes and football stadiums to design
concepts for cars and for replacement parts which have no design data, reverse engineering is a broad
field allowing us to create virtually anything we can touch. FaroArms and Laser Trackers can be used to
reverse engineer geometric objects whilst more complex shapes are better captured using a non contact
device such as a ScanArm or Laser Scanner LS.
Requirement
To digitize a part or object creating a fully surfaced CAD model which can be used to record and
reproduce the item.
Solution
Using a FARO Laser ScanArm free form surfaces can be rapidly scanned to produce a point cloud. This
can be triangulated and surfaced using our various software options. Touch probe devices such as the
Laser Tracker or FaroArm can also be used to reverse engineer geometric parts.
Benefit
The main advantage of using laser scanning technology is the timesaving, many thousands of points are
captured every second meaning that parts can be rapidly reverse engineered and reproduced virtually. As
FARO solutions are portable parts can be reverse engineered without having to be relocated.
Through the process of Reverse Engineering, we extract the digital shape of any physical object and use
that data to troubleshoot, reproduce, study, analyze, inspect or use in other downstream applications.
This digital data can be delivered in the form of just plain xyz points, also commonly called a point cloud,
surface models, polygon mesh models (stl), watertight solid models, color coded easy to read inspection
reports, cross sections or splines. This data can further be converted to be read in any CAD system.
Some of the supported file formats are:
Igs (IGES), x_t (Unigraphics), prt (Pro/E), model (Catia),Rapid Prototyping (slc,stl),des(GM-des), nas
(Nastran),obj (Wavefront),iv (Open Inventor), xyz, ascii, vda, vrml, bmw, cfl, lay, ast, sys, wrl, as well as
all the 3D digitizer formats.
With the digital data generated by this process, CAD models can be easily updated to reflect the changes
in the model, object, tool or die. Any part of the tool or die can be duplicated with the help of the
surface model created by this process. Physical product designs like clay and other prototypes can be
converted into solid models for making the required tooling.
Benefits
Convert any physical shape into digital format
Create tooling for any object
Make changes in your tool, mold or part
Watertight solid models let you machine directly from our data
Save time and money in product development
Interchangeability with any CAD system
Typical RE Applications
Creating data to refurbish or manufacture a part for which there is no CAD data, or for which the
data has become obsolete or lost.
Inspection and/or Quality Control - Comparing a fabricated part to its CAD description or to a
standard item.
Creating 3D data from a model or sculpture for animation in games and movies.
Creating 3D data from an individual, model or sculpture for creating, scaling or reproducing
artwork.
Documentation and/or measurement of cultural objects or artifacts in archaeology,
paleontology and other scientific fields.
Fitting clothing or footwear to individuals and determining the anthropometry of a population
Generating data to create dental or surgical prosthetics, tissue-engineered body parts, or for
surgical planning.
Documentation and reproduction of crime scenes.
Architectural and construction documentation and measurement.