Sei sulla pagina 1di 14

Reverse Engineering

MENTOR2

Appendix 4.3.4.B Reverse Engineering Instructor Notes

Reverse Engineering Training Curriculum

Prepared by

Applied Systems and Technology Transfer


Youngstown, OH

Version Date 05102017

1 of 14
Reverse Engineering
MENTOR2
Slide 1 – Title Slide

Slide 2 – Agenda

Slide 3 – Agenda

Slide 4 – Topic Slide

Slide 5 – What is Reverse Engineering

Introduce the basic idea of Reverse Engineering by referencing the following definitions pulled from
the web. Note the subtle differences between definitions and that application (web v. physical) has an
impact on the interpretation of Reverse Engineering.

[Merriam-Webster]
to disassemble and examine or analyze in detail (a product or device) to discover the concepts involved
in manufacture usually in order to produce something similar

https://www.merriam-webster.com/dictionary/reverse%20engineer

[Techopedia]
Reverse engineering, in computer programming, is a technique used to analyze software in order to
identify and understand the parts it is composed of. The usual reasons for reverse engineering a piece of
software are to recreate the program, to build something similar to it, to exploit its weaknesses or
strengthen its defenses.

https://www.techopedia.com/definition/3868/reverse-engineering

[Wikipedia]
Reverse engineering, also called back engineering, is the processes of extracting knowledge or
design information from anything man-made and re-producing it or re-producing anything based on the
extracted information.[1]:3 The process often involves disassembling something (a mechanical device,
electronic component, computer program, or biological, chemical, or organic matter) and analyzing its
components and workings in detail.

https://en.wikipedia.org/wiki/Reverse_engineering

[New World Encyclopedia]


Reverse engineering (RE) 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
(for example a mechanical device, electronic component, or software program) apart and analyzing its
workings in detail, usually to try to make a new device or program that does the same thing without
copying anything from the original.

http://www.newworldencyclopedia.org/entry/Reverse_engineering

[Interaction Design Foundation]


Reverse engineering (or sometimes back-engineering) is a process that is designed to extract enough
2 of 14
Reverse Engineering
MENTOR2
data from a product and then to be able to reproduce that product. It may involve moving to creating a
product from scratch or from pre-developed components. It can be applied to any product (such as
computer technology, manufactured products, biological products, chemical products, etc.) to
determine how the components are put together and how it works.

https://www.interaction-design.org/literature/article/reverse-engineering-conceptual-definition-heading-
back-to-where-we-started

Slide 6 – What is Reverse Engineering

Pull together some of the main themes derived from the definitions and concept of Reverse
Engineering. Most notably, that Reverse Engineering (regardless of web v. physical) emphasizes
functionality. Specifically, the mimicking, improving and modernizing of functionality. People pursue
Reverse Engineering to gain a better understanding of products, competitors or the general
marketplace within which a company is operating. Essentially, we Reverse Engineering to better
understand how things work and how we can use this knowledge to gain a stronger competitive
advantage or improve the functionality of the product(s) we are Reverse Engineering.

The reasons for employing reverse engineering are myriad. Some are legal and ethical and many are
not. It can, for example, be applied by the creator of a product when they are unable to remember the
steps they employed to create the product in the first place. Equally, it can be used to clone the product
and manufacture it more cheaply than the original which may be a more legally and ethically
concerning use of reverse engineering.
Common reasons for reverse engineering include:
• Developing interfaces for system interoperability. This may often be used when legacy
systems are involved or if original documentation is unavailable.
• Corporate and/or military espionage. Reverse engineering may enable the cloning of
competitor’s products or an understanding of how to develop market or military counter-
measures for that product.
• Improving product documentation. If product documentation supplied doesn’t mean the
standards for easy use, it may be that reverse engineering the product can help articulate the
documentation to a higher standard.
• Factoring out obsolescence. Many components of products have a short commercial lifespan;
if an existing component cannot be purchased it may be possible to reverse engineer it so that a
replacement can be constructed with materials currently available. Reverse engineering may
also be required when the original manufacturer no longer supports maintenance of a particular
product but maintenance is required.
• Modernizing of software products. Legacy systems may benefit from reverse engineering
when the original knowledge of how a specific challenge was tackled has been lost to a
business. Reverse engineering can also help with migrating legacy systems to new platforms.
• Security adaptions. Reverse engineering can benefit piracy and copying of systems by
removing rights management and it may also be used to develop stricter security protocols by
better understanding the operation of the product.
• Fixing product flaws. If you reverse engineer a product, particularly those which are not
supported by their original creators, you can often fix problems with the product.
• Cloning. Creating (often illegal) copies of the original product.

3 of 14
Reverse Engineering
MENTOR2
• Education. Reverse engineering can serve as an educational tool that enables understanding of
successful (and unsuccessful) designs so that this knowledge can be built upon in the future.
• Cost reduction. By understanding what goes into a product – cheaper alternatives may be
sourced as replacement parts.
• Redesign/repurposing. Products that are no longer useful may be reverse engineered so that
they can be improved upon and made useful once again.
• Competitor intelligence. Learning what your competitors are actually doing as opposed to
what they publicly state they are doing.
https://www.interaction-design.org/literature/article/reverse-engineering-conceptual-definition-
heading-back-to-where-we-started

Slide 7 – What is Reverse Engineering

There are a myriad of ways in which Reverse Engineering could be used. Some are good (altruistic)
and some a bad (nefarious). It's important to understand not just the positive aspects of Reverse
Engineering, but also the negative. In the same way that economic principles (e.g., depreciation) can
be used to improve corporate tax returns, they can also be used to 'game' the system unethically (we
will talk about ethics in later slides). There is a great case study with Waste Management on
engineering economics being used nefariously.

Slide 8 – What is Reverse Engineering

The main delineation made with Reverse Engineering is between Hardware and Software. It's
important for individuals to understand that Reverse Engineering is not a process applied only to
physical parts. We can Reverse Engineer software for the same purposes (understanding functionality,
improving capability, etc.) and using the same methodological approach. Obviously, there is a
significantly stronger push to Reverse Engineer software as data-driven, service-oriented companies
have seen great gains by incorporating apps (think Uber, Facebook) into their user's everyday life.

Reverse-engineering is used for many purposes: as a learning tool; as a way to make new, compatible
products that are cheaper than what's currently on the market; for making software interoperate more
effectively or to bridge data between different operating systems or databases; and to uncover the
undocumented features of commercial products.

http://www.computerworld.com/article/2585652/app-development/reverse-engineering.html

Slide 9 – What is Reverse Engineering

Regardless of the end-use, Reverse Engineering is a process. It's methodical. We can make reference
here to the Engineering Design Process or the Scientific Method. You don't Reverse Engineer by
grabbing a screwdriver and taking something apart. You have a plan not only to take apart but also to
inspect and access the mechanics (either hardware or software). A critical part of Reverse Engineering
is also the ability to re-create and/or re-assemble. To this degree, many companies and individuals
have started to regularly incorporate scanning or digitizing of parts/pieces along with a detailed set of
re-assembly instructions. The benefits of scanning or digitizing are two fold. First, documentation,
storage and data management become increasingly easier with digitization (though the tradeoff is
security. Computers and files are much more vulnerable to hacking than a physical document). Second,
4 of 14
Reverse Engineering
MENTOR2
re-creation of the product or simplification of the re-design is supported with digitizing or scanning.
Instead of designing the part/product from scratch, you simply take the scan and edit.

http://www.middleweb.com/wp-content/uploads/2015/07/stem-engineering-design-process.jpg

As computer-aided design has become more popular, reverse engineering has become a viable method
to create a 3D virtual model of an existing physical part for use in 3D CAD, CAM, CAE and other
software.[1] The reverse engineering process involves measuring an object and then reconstructing it as
a 3D model. The physical object can be measured using 3D scanning technologies like CMMs, laser
scanners, structured light digitizers, or computed tomography. The measured data alone, usually
represented as a point cloud, lacks topological information and is therefore often processed and
modeled into a more usable format such as a triangular faced mesh, a set of NURBS surfaces or a CAD
model. Applications like Imageware, PolyWorks, Rapidform, or Geomagic are used to process the point
clouds themselves into formats usable in other applications such as 3D CAD, CAM, CAE or
visualization.
Reverse engineering is also used by businesses to bring existing physical geometry into digital product
development environments, to make a digital 3D record of their own products or assess competitors'
products. It is used to analyze, for instance, how a product works, what it does, what components it
consists of, estimate costs, identify potential patent infringement, etc.
Value engineering is a related activity also used by business. It involves deconstructing and analyzing
products, but the objective is to find opportunities for cost cutting.
http://www.newworldencyclopedia.org/entry/Reverse_engineering

According to A Methodology for Reverse Engineering, reverse engineering consists of the following
steps:
• 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 improvement.
Through reverse engineering, a researcher can gather the technical data necessary for the
documentation of the operation of a technology or component of a system. When reverse engineering
software, researchers are able to examine the strength of systems and identify their weaknesses in terms
5 of 14
Reverse Engineering
MENTOR2
of performance, security, and interoperability. The reverse engineering process allows researchers to
understand both how a program works and also what aspects of the program contribute to its not
working. Independent manufacturers can participate in a competitive market that rewards the
improvements made on dominant products. For example, security audits, which allow users of software
to better protect their systems and networks by revealing security flaws, require reverse engineering.
The creation of better designs and the interoperability of existing products often begin with reverse
engineering.
https://ethics.csc.ncsu.edu/intellectual/reverse/study.php
https://www.asme.org/engineering-topics/articles/modeling-computational-methods/the-rise-of-reverse-
engineering
Slide 10 – Where is Reverse Engineering

The following slides (Slides 10 – 14) give examples of famous Reverse Engineering projects. Additional
examples are included with Slide 14. Understanding the breadth of Reverse Engineering will help
individuals better comprehend its significance. Additionally, the diversity in examples showcase the
value of strong Reverse Engineering skills.

http://www.modellbaustube.com/images/hat8124a.jpg

google egyptian chariot

Slide 11 – Where is Reverse Engineering

6 of 14
Reverse Engineering
MENTOR2

https://s-media-cache-ak0.pinimg.com/564x/4e/6c/23/4e6c2360ed70e0ad1851f36cd814be84.jpg

http://www.romae-vitam.com/images/roman-trireme.jpg

Slide 12 – Where is Reverse Engineering

http://media-
channel.nationalgeographic.com/media/uploads/photos/content/video/2012/05/01/16423441_B-
7 of 14
Reverse Engineering
MENTOR2
29_Superfortress.jpg

http://www.militaryfactory.com/aircraft/imgs/tupolev-tu4-bull.jpg

Slide 13 – Where is Reverse Engineering

google human genome

Slide 14 – Where is Reverse Engineering

google samba

Additional examples and articles discussing famous Reverse Engineering projects are presented.

[Military]

http://www.theepochtimes.com/n3/1699756-7-military-weapons-china-copied-from-the-united-states/

http://www.popularmechanics.com/military/a746/3319656/

https://historylist.wordpress.com/2008/05/06/reverse-engineering-for-war/

https://www.lce.com/Mechanical-Component-Reverse-Engineering-Project-Examples-328.html

Jerry can: British and American forces noticed that the Germans had gasoline cans with an excellent
design. They reverse engineered copies of those cans. The cans were popularly known as "Jerry cans."
• Tupolev Tu-4: Three American B-29 bombers on missions over Japan were forced to land in the

8 of 14
Reverse Engineering
MENTOR2
USSR. The Soviets, who did not have a similar strategic bomber, decided to copy the B-29.
Within a few years they had developed the Tu-4, a near perfect copy.
• V2 Rocket: Technical documents for the V2 and related technologies were captured by the
Western Allies at the end of the war. Soviet and captured German engineers had to reproduce
technical documents and plans, working from captured hardware, in order to make their clone of
the rocket, the R-1, which began the postwar Soviet rocket program that led to the R-7 and the
beginning of the space race.
• K-13/R-3S missile (NATO reporting name AA-2 Atoll), a Soviet reverse-engineered copy of the
AIM-9 Sidewinder, made possible after a Taiwanese AIM-9B hit a Chinese MiG-17 without
exploding; amazingly, the missile became lodged within the airframe, the pilot returning to base
with what Russian scientists would describe as a university course in missile development.
• BGM-71_TOW Missile: In May 1975, negotiations between Iran and Hughes Missile Systems
on co-production of the TOW and Maverick missiles stalled over disagreements in the pricing
structure. The subsequent 1979 revolution ended all plans for such co-production. Iran was
successful in reverse engineering the missile, and are currently producing their own copy: The
Toophan.
http://www.newworldencyclopedia.org/entry/Reverse_engineering

[Health]

The Human Genome Project is perhaps the most famous example of scientific reverse engineering,
wherein scientists try to decipher human DNA to learn more about how we work as a species.

https://www.thesoftwareguild.com/blog/what-is-reverse-engineering/

[Software]

To protect against charges of having simply (and illegally) copied IBM's BIOS, Phoenix reverse-
engineered it using what's called a "clean room," or "Chinese wall," approach. First, a team of
engineers studied the IBM BIOS—about 8KB of code—and described everything it did as completely
as possible without using or referencing any actual code. Then Phoenix brought in a second team of
programmers who had no prior knowledge of the IBM BIOS and had never seen its code. Working only
from the first team's functional specifications, the second team wrote a new BIOS that operated as
specified.

http://www.computerworld.com/article/2585652/app-development/reverse-engineering.html

Slide 15 – Topic Title Slide

It's important for individuals to understand that there are legal/moral/ethical questions with respect to
Reverse Engineering. Referencing the age-old saying, 'Just because you CAN doesn't mean you
SHOULD', Reverse Engineering is a process that should be entered into intentionally and for the right
motives. Laws vary from country to country, but many include various legal repercussions for the
nefarious use of Reverse Engineering.

In the United States and many other countries, even if an artifact or process is protected by trade
secrets, reverse-engineering the artifact or process is often lawful as long as it is obtained legitimately.

9 of 14
Reverse Engineering
MENTOR2
Patents, on the other hand, need a public disclosure of an invention, and therefore patented items do not
necessarily have to be reverse engineered to be studied. One common motivation of reverse engineers
is to determine whether a competitor's product contains patent infringements or copyright
infringements.
Reverse engineering software or hardware systems which is done for the purposes of interoperability
(for example, to support undocumented file formats or undocumented hardware peripherals), is mostly
believed to be legal, though patent owners often contest this and attempt to stifle any reverse
engineering of their products for any reason.
"…[W]here disassembly is the only way to gain access to the ideas and functional elements embodied
in a copyrighted computer program and where there is a legitimate reason for seeking such access,
disassembly is a fair use of the copyrighted work, as a matter of law."[9]
http://www.newworldencyclopedia.org/entry/Reverse_engineering

Slide 16 – Is Reverse Engineering Legal

There are two basic legalities associated with reverse engineering:


• a. Copyright Protection - protects only the look and shape of a product.
• b. Patent Protection - protects the the idea behind the functioning of a new product.
According to npd-solutions a patent is no more than a warning sign to a competitor to discourage
competition. Also npd-solutions says that 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 patent.
Commonly, RE is performed using the clean-room or Chinese wall. Clean-room, reverse engineering
is conducted in a sequential manner:
a. a team of engineers are sent to disassmble the product to investigate and describe what it does in
as much detail as possible at a somewhat high level of abstraction.
b. description is given to another group who has no previous or current knowledge of the product.
c. second party then builds product from the given description. This product might achieve the
same end effect but will probaby have a different solution approach.
New court cases reveal that reverse engineering practices which are used to achieve interoperability
with an independantly created computer program, are legal and ethical. In December, 2002, Lexmark
filed suit against SCC, accusing it of violating copyright law as well as the DMCA. SCC reverse
engineered the code contained in Lexmark printer cartidge so that it could manufacture compatible
cartiges. According to Computerworld , Lexmark "alleged that SCC's Smartek chips include Lexmark
software that is protected by copyright. The software handles communication between Lexmark
printers and toner cartidges; without it, refurbished toner cartidges won't work with Lexmark's
printers." The court ruled that "copyright law shouldn't be used to inhibit interoperability between one
vendor's products and those of its rivals. In a ruling from the U.S. Copyright Office in October 2003,
the Copyright Office said "the DMCA doesn't block software develpers from using reverse engineering
to access digitally protected copyright material if they do so to achieve interoperability with an
10 of 14
Reverse Engineering
MENTOR2
independently created computer program."
This issue is largely debated and does not seem to have a clear cut answer. The number one argument
against reverse engineering is that of intellectual property. If an individual or an organization produces
a product or idea, is it ok for others to "disassemble" the product in order to discover the inner
workings? Lexmark does not think so. Since Lexmark and companies like them spend time and money
to develop products, they find it unethical that others can reverse engineer their products. There are also
products like Bit Keeper that have been hurt by reverse engineering practices. Why should companies
and individuals spend major resources to gather intellectual property that may be reversed engineered
by competitors at a fraction of the cost?

There are also benefits to reverse engineering. Reverse engineering might be used as a way to allow
products to interoperate. Also reverse engineering can be used as a check so that computer software
isn't performing harmful, unethical, or illegal activities.
https://ethics.csc.ncsu.edu/intellectual/reverse/study.php

Jon Johansen, a leading proponent of open source design, says; “Basically, if reverse engineering is
banned, then a lot of the open source community is doomed to fail.”
Slide 17 – Is Reverse Engineering Legal?
As you might expect, reverse engineering is a complicated subject in law. Firstly, it is important to note
that there is little point in reverse engineering a patented process to duplicate it. Patents are a matter of
public record and the process is fully documented. However, many patents are reverse engineered in
order to examine whether they impinge on the patents (or copyright) of other intellectual property.
The legal environment for reverse engineering differs from country to country (and sometimes from
state to state). This means that before conducting any form of reverse engineering in a design or
development project; you should take legal advice. Even seemingly ethical reverse engineering projects
may be in contravention of this complex area of law. The last thing you need on any project is to leave
you and/or your business open to civil and/or criminal liability.
In the same respect if you believe your own intellectual property has been reverse engineered and either
your copyright or patents infringed upon – you should take legal advice as to what means of redress are
open to you. Be prepared for large legal fees which may, for smaller businesses at least, make it
difficult if not impossible to remedy the situation through the courts.

https://www.interaction-design.org/literature/article/reverse-engineering-conceptual-definition-heading-
back-to-where-we-started

Slide 18 – Is Reverse Engineering Legal?

This is a patent obtained from the US Patent Office for a faucet. See that there would be little need to
Reverse Engineer this product as the patent clearly indicates functionality, form, etc.

11 of 14
Reverse Engineering
MENTOR2

https://patentimages.storage.googleapis.com/pages/US1212806-0.png

Slide 19 – Is Reverse Engineering Ethical?

Stop and brainstorm. Have some discussion. Point out the differences between legal and ethical.

Slide 20 – Topic Title Slide

Slide 21 – How to Approach Reverse Engineering

Reinforce that Reverse Engineering is a process. Like any good process, there are standards and
accepted methods for implementation. One of the main Reverse Engineering approaches, seen
especially in the Reverse Engineering of software, is the 'Clean Room' design. The main idea here is
that you incorporate degrees of separation into the Reverse Engineering process. As an example,
Person 1 would 'take apart' the product or software by writing down key functions, aspects, properties
and capabilities of the product. This description would be in words only and would then be passed to
Person 2, who would re-create the product based on what they read in Person 1's description. One of
the key points in the Clean Room approach is that Person 2 never actually touches, sees, or operates
the product. They are completely removed from the actual product by the 'Chinese Wall' that only
allows the passing of written description.

12 of 14
Reverse Engineering
MENTOR2

http://www.computerworld.com/article/2585652/app-development/reverse-engineering.html

Slide 22 – How to Approach Reverse Engineering

The 'Clean Room' approach is especially useful as it helps companies avoid copyright infringement. As
copyright generally deals with the aesthetics of a product, the 'Chinese Wall' prevents the passing of
such information to Person 2 and thereby offers a stronger opportunity for only functionality/capability
to be mimicked and not the look/feel (note that this is not a guaranteed and that there is a 'gray area' in
copyright law that is open to interpretation). This approach provides for human variation to enter the
design, as well, again creating an opportunity for divergence between the original and Reverse
Engineered product.

Slide 23 – How to Approach Reverse Engineering

Slides 23 – 25 are adapted from the textbook 'Reverse Engineering' edited by Vinesh Raja and Kiran J.
Fernandes and published as part of the Springer Series in Advanced Manufacturing.

Slide 24 – How to Approach Reverse Engineering

Slide 25 – How to Approach Reverse Engineering

Slide 26 – How to Approach Reverse Engineering

There is a Small-group exercise document 'smallGroupDay1.pdf' that details a 'Clean Room' project.
The project is meant to give individuals the experience of being on each side of the 'Chinese Wall' and
includes time for discussion/interpretation in small-groups and to the larger group as a whole.

Slide 27 – How to Approach Reverse Engineering

Debrief on the previous topics. Have individuals ask questions. You could include some time here to
have people bring out computers/phones and Google their own Reverse Engineering examples or try to
find some additional information to supplement the talk to this point. Recap with some discussion on
what was learned. Was there new content introduced? Was there content that you thought you knew but
found out through the lecture materials that your interpretation was incomplete or incorrect? Try to
have at least three to four share (obviously, the more the better).

Slide 28 – Topic Title Slide

Slide 29 – Design, Basis, Analysis Tool

If desired, this is where we would introduce the DBAT and walk them through it. We can use the same
13 of 14
Reverse Engineering
MENTOR2
Small Group project done previously to come up with a second design that needs to be entered into
DBAT. This would give more opportunity for team work and brainstorming and would allow the
individuals to practice with the DBAT tool as well (thereby reinforcing Reverse Engineering concepts
while learning the new DBAT skill).

Slide 30 – Topic Title Slide

Slide 31 – Reverse Engineering Challenge

There is a document entitled 'teamMainDay1.pdf' which contains this project. The project is mainly
based on 3D printing, so efforts would need to be made to modify the project if additional
manufacturing tools (e.g., milling, CNC, etc.) are to be included in the project. It is expected that this
project would be at least one day and likely longer. It's best if there is enough time for teams to work
through an initial design and have it printing before they leave for the day. It's also beneficial to
instruct teams on best practices for using 3D printers. Namely, that you can use the 3D printers to test
'proof-of-concept' for functionality/form/fit by printing smaller parts, decreasing density, increasing
print speed, etc. This is a great way to also discuss the trade-offs in 3D printing (e.g., increasing print
speed means I get the part faster but may result in a part that is not as 'clean' or 'polished').

Important to note that this is an actual project that could be purchased (cheaply, via Amazon) and
actually Reversed Engineered. We could compare the 3D printed parts to the actual part.

Cooler Faucet – Reverse Engineering Project

https://www.amazon.com/Tomlinson-Replacement-Cooler-Faucet-
White/dp/B000BARBGK/ref=sr_1_3?ie=UTF8&qid=1489591223&sr=8-3&keywords=plastic+faucet

14 of 14

Potrebbero piacerti anche