All Topics  
Reverse engineering

 

   Email Print
   Bookmark   Link






 

Reverse engineering



 
 
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 (e.g., a mechanical device
Machine

A machine is any device that uses energy to perform some activity. In common usage, the meaning is that of a device having parts that perform or assist in performing any type of work....
, electronic component
Electronic component

An electronic component is a basic Electronics element usually packaged in a discrete form with two or more connecting leads or metallic pads....
, 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 copying anything from the original.

Reverse engineering has its origins in the analysis of hardware for commercial or military advantage .






Discussion
Ask a question about 'Reverse engineering'
Start a new discussion about 'Reverse engineering'
Answer questions from other users
Full Discussion Forum



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 (e.g., a mechanical device
Machine

A machine is any device that uses energy to perform some activity. In common usage, the meaning is that of a device having parts that perform or assist in performing any type of work....
, electronic component
Electronic component

An electronic component is a basic Electronics element usually packaged in a discrete form with two or more connecting leads or metallic pads....
, 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 copying anything from the original.

Reverse engineering has its origins in the analysis of hardware for commercial or military advantage . The purpose is to deduce design decisions from end products with little or no additional knowledge about the procedures involved in the original production. The same techniques are currently being researched for application to legacy software systems, not for industrial or defense ends, but rather to replace incorrect, incomplete, or otherwise unavailable documentation.

Motivation

Reasons for reverse engineering:
  • Interoperability
    Interoperability

    Interoperability is a property referring to the ability of diverse systems and organizations to work together . The term is often used in a technical systems engineering sense, or alternatively in a broad sense, taking into account social, political, and organizational factors that impact system to system performance....
    .
  • 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 circuit
    Integrated circuit

    In electronics, an integrated circuit is a miniaturized electronic circuit that has been manufactured in the surface of a thin Wafer of semiconductor material....
    s 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
    Patent infringement

    Patent infringement is the act of utilizing a patented invention without permission from the patent holder. Permission may typically be granted in the form of a licence....
    .
  • Security auditing.
  • Removal of copy protection
    Copy protection

    Copy protection, also known as content protection, copy prevention, or copy restriction, is a technology for preventing the reproduction of copyrighted software, movies, music, and other media....
    , circumvention of access restrictions.
  • Creation of unlicensed/unapproved duplicates.
  • 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


Reverse engineering of mechanical devices

As computer-aided design
Computer-aided design

Computer-Aided Design is the use of computer technology to aid in the design and particularly the drafting of a part or product, including entire buildings....
 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 [computer-aided design], CAM
Computer-aided manufacturing

Computer-aided manufacturing is the use of computer-based software tools that assist engineers and machinists in manufacturing or prototyping product components....
, CAE
Computer-aided engineering

File:Plasticity.jpgComputer-aided engineering is the use of information technology to support engineers in tasks such as analysis, Computer simulation, design, manufacture, planning, diagnosis, and repair....
 and other software. 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
3D scanner

A 3D scanner is a device that analyzes a real-world object or environment to collect data on its shape and possibly its appearance . The collected data can then be used to construct digital, three dimensional models useful for a wide variety of applications....
 technologies like CMMs
Coordinate-measuring machine

A 'coordinate measuring machine' is a device for measuring the physical geometrical characteristics of an object. This machine may be manually controlled by an operator or it may be computer controlled....
, laser scanners
3D scanner

A 3D scanner is a device that analyzes a real-world object or environment to collect data on its shape and possibly its appearance . The collected data can then be used to construct digital, three dimensional models useful for a wide variety of applications....
, structured light digitizer
3D scanner

A 3D scanner is a device that analyzes a real-world object or environment to collect data on its shape and possibly its appearance . The collected data can then be used to construct digital, three dimensional models useful for a wide variety of applications....
s or computed tomography
Computed tomography

Computed tomography is a medical imaging method employing tomography. Geometry Processing is used to generate a stereoscopy of the inside of an object from a large series of two-dimensional X-ray images taken around a single axis of rotation....
. The measured data alone, usually represented as a point cloud
Point cloud

A point cloud is a set of vertices in a three-dimensional coordinate system. These vertices are usually defined by X, Y and Z coordinates....
, 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
Nonuniform rational B-spline

Non-uniform rational B-spline is a mathematical model commonly used in computer graphics for generating and representing curves and surfaces....
 surfaces or a CAD model.

The point clouds produced by 3D scanners are usually not used directly since they are very large unwieldy data sets, although for simple visualization and measurement in the architecture and construction world, points may suffice. Most applications instead use polygonal 3D models, NURBS surface models, or editable feature-based CAD models (aka Solid models). The process of converting a point cloud into a usable 3D model in any of the forms described above is called "modeling"'.

  • POLYGON MESH MODELS: In a polygonal representation of a shape, a curved surface is modeled as many small faceted flat surfaces (think of a sphere modeled as a disco ball). Polygon models -- also called Mesh models, are useful for visualization, for some CAM (i.e., machining), but are generally "heavy" ( i.e., very large data sets), and are relatively un-editable in this form. Reconstruction to polygonal model involves finding and connecting adjacent points with straight lines in order to create a continuous surface. Many applications are available for this purpose (eg. kubit PointCloud for AutoCAD, photomodeler, imagemodel, Rapidform, Geomagic, Imageware, Rhino, etc.).


  • SURFACE MODELS: The next level of sophistication in modeling involves using a quilt of curved surface patches to model our shape. These might be NURBS, TSplines or other representations of curved topology using higher ordered polynomials (i.e, curved, not straight). Using NURBS, our sphere is a true mathematical sphere. Some applications offer patch layout by hand but the best in class offer both automated patch layout and manual layout. These patches have the advantage of being lighter and more manipulable when exported to CAD. Surface models are somewhat editable, but only in a sculptural sense of pushing and pulling to deform the surface. This representation lends itself well to modeling organic and artistic shapes. Providers of surface modelers include Rapidform, Geomagic, Rhino, Maya, T Splines etc.


  • SOLID CAD MODELS: From an engineering/manufacturing perspective, the ultimate representation of a digitized shape is the editable, parametric CAD model. After all, CAD is the common "language" of industry to describe, edit and maintain the shape of the enterprise's assets. In CAD, our sphere is described by parametric features which are easily edited by changing a value(e.g., centerpoint and radius).


These CAD models describe not simply the envelope or shape of the object, but CAD models also embody the "design intent" (i.e., critical features and their relationship to other features). An example of design intent not evident in the shape alone might be a brake drum's lug bolts, which must be concentric with the hole in the center of the drum. This knowledge would drive the sequence and method of creating the CAD model; a designer with an awareness of this relationship would not design the lug bolts referenced to the outside diameter, but instead, to the center. A modeler creating a CAD model will want to include both Shape and design intent in the complete CAD model.

Vendors offer different approaches to getting to the parametric CAD model. Some export the NURBS surfaces and leave it to the CAD designer to complete the model in CAD(e.g., Geomagic, Imageware, Rhino). Others use the scan data to create an editable and verifiable feature based model that is imported into CAD with full feature tree intact, yielding a complete, native CAD model, capturing both shape and design intent (e.g. Rapidform). Still other CAD applications are robust enough to manipulate limited points or polygon models within the CAD environment(e.g., Catia).

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 to assess competitors' products. It is used to analyze, for instance, how a product works, what it does, and what components it consists of, estimate costs, and identify potential patent
Patent

A patent is a set of exclusive rights granted by a state to an inventor or his assignee for a term of patent in exchange for a disclosure of an invention....
 infringement, etc.


Value engineering
Value engineering

Value engineering is a systematic method to improve the "value" of goods or products and services by using an examination of function....
 is a related activity also used by businesses. It involves deconstructing and analysing products, but the objective is to find opportunities for cost cutting.

Reverse engineering of software

The term reverse engineering as applied to software means different things to different people, prompting Chikofsky and Cross to write a paper researching the various uses and defining a taxonomy
Taxonomy

Taxonomy is the practice and science of classification. The word comes from the Greek language ', taxis and ', nomos .Taxonomies, or taxonomic schemes, are composed of taxonomic units known as taxa , or kinds of things that are arranged frequently in a hierarchical structure....
. From their paper:
Reverse engineering is the process of analyzing a subject system to create representations of the system at a higher level of abstraction. It can also be seen as "going backwards through the development cycle". In this model, the output of the implementation phase (in source code form) is reverse-engineered back to the analysis phase, in an inversion of the traditional waterfall model
Waterfall model

The waterfall model is a sequence development process, in which development is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design , Construction,Integration and software maintenance....
. Reverse engineering is a process of examination only: the software system under consideration is not modified (which would make it reengineering
Reengineering (software)

The reengineering of software was described by Chikofsky and Cross in their 1990 paper, as "The examination and alteration of a system to reconstitute it in a new form"....
). Software anti-tamper technology is used to deter both reverse engineering and reengineering of proprietary software and software-powered systems. In practice, two main types of reverse engineering emerge. In the first case, source code is already available for the software, but higher-level aspects of the program, perhaps poorly documented or documented but no longer valid, are discovered. In the second case, there is no source code available for the software, and any efforts towards discovering one possible source code for the software are regarded as reverse engineering. This second usage of the term is the one most people are familiar with. Reverse engineering of software can make use of the clean room design
Clean room design

Clean room design is the method of copying a design by reverse engineering and then recreating it without infringing any of the copyrights and trade secrets associated with the original design....
 technique to avoid infringing copyrights.

On a related note, black box testing
Black box testing

Black box testing takes an external perspective of the test object to derive test cases. These tests can be functional or non-functional, though usually functional....
 in software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
 has a lot in common with reverse engineering. The tester usually has the API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
, but their goals are to find bugs and undocumented features by bashing the product from outside.

Other purposes of reverse engineering include security auditing, removal of copy protection ("cracking
Software cracking

Software cracking is the modification of software to remove protection methods: copy protection, trial/demo version, serial number, hardware key, date checks, No-CD crack or software annoyances like nag screens and adware....
"), circumvention of access restrictions often present in consumer electronics
Consumer electronics

Consumer electronics include electronic equipment intended for everyday use. Consumer electronics are most often used in entertainment, communications and office productivity....
, customization of embedded systems (such as engine management systems), in-house repairs or retrofits, enabling of additional features on low-cost "crippled" hardware (such as some graphics card chipsets), or even mere satisfaction of curiosity.

Binary software

This process is sometimes termed Reverse Code Engineering, or RCE. As an example, decompilation of binaries for the Java platform can be accomplished using Jad. One famous case of reverse engineering was the first non-IBM implementation of the PC
IBM PC

The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform ....
 BIOS
BIOS

In computing, the Basic Input/Output System , also known as the System BIOS, is a de facto standard defining a firmware interface for IBM PC Compatible computers....
 which launched the historic IBM PC compatible
IBM PC compatible

IBM PC compatible computers are those generally similar to the original IBM Personal Computer, IBM Personal Computer XT, and IBM Personal Computer/AT....
 industry that has been the overwhelmingly dominant computer hardware platform for many years. An example of a group that reverse-engineers software for enjoyment is CORE which stands for "Challenge Of Reverse Engineering". In the United States
United States

The United States of America is a Federal government constitutional republic comprising U.S. state and a federal district. The country is situated mostly in central North America, where its Contiguous United States and Washington, D.C., the Capital districts and territories, lie between the Pacific Ocean and Atlantic Oceans, Borders of the U...
, the Digital Millennium Copyright Act
Digital Millennium Copyright Act

The Digital Millennium Copyright Act is a United States copyright law that implements two 1996 treaties of the World Intellectual Property Organization ....
 (DMCA) exempts from the circumvention ban some acts of reverse engineering aimed at interoperability of file formats and protocols, but judges in key cases have ignored this law, since it is acceptable to circumvent restrictions for use but not for access. Aside from restrictions on circumvention, reverse engineering of software is protected in the U.S. by the fair use
Fair use

Fair use is a doctrine in United States copyright law that allows limited use of copyrighted material without requiring permission from the rights holders, such as use for scholarship or review....
 exception in copyright law
Copyright

Copyright is a form of intellectual property which gives the creator of an original work exclusive rights for a certain time period in relation to that work, including its publication, distribution and adaptation; after which time the work is said to enter the public domain....
. The Samba software, which allows systems that are not running Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 systems to share files with systems that are, is a classic example of software reverse engineering, since the Samba project had to reverse-engineer unpublished information about how Windows file sharing worked, so that non-Windows computers could emulate it. The Wine
Wine (software)

Wine is a free software software application that aims to allow Unix-like computer operating systems on the x86 architecture or x86-64 architecture to execute programs written for Microsoft Windows....
 project does the same thing for the Windows API
Windows API

The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces available in the Microsoft Windows operating systems....
, and OpenOffice.org
OpenOffice.org

OpenOffice.org , commonly known simply as OpenOffice, is an office application suite available for a number of different computer operating systems....
 is one party doing this for the Microsoft Office
Microsoft Office

Microsoft Office is a popular set of interrelated desktop applications, servers and services. Microsoft Office is collectively referred to as an office suite, for the Microsoft Windows and Mac OS X operating systems....
 file formats. The ReactOS
ReactOS

ReactOS is a computer operating system intended to be Application binary interface with application software and device drivers made for Microsoft Windows NT versions 5.x and up ....
 project is even more ambitious in its goals, as it strives to provide binary (ABI and API) compatibility with the current Windows OSes of the NT branch, allowing software and drivers written for Windows to run on a clean-room reverse-engineered GPL open-source counterpart.

Binary software techniques
Reverse engineering of software can be accomplished by various methods. The three main groups of software reverse engineering are
  1. Analysis through observation of information exchange, most prevalent in protocol reverse engineering, which involves using bus analyzer
    Bus analyzer

    A bus analyzer is a computer bus analysis tool, often a combination of hardware and software, used during development of hardware or device drivers for a specific bus, diagnosing bus or device failures, or reverse engineering....
    s and packet sniffer
    Packet sniffer

    A packet analyzer is computer software or computer hardware that can intercept and log traffic passing over a digital telecommunications network or part of a network....
    s, for example, for accessing a computer bus
    Computer bus

    In computer architecture, a bus is a subsystem that transfers data between computer components inside a computer or between computers. Each bus defines its set of connectors to physically plug devices, cards or cables together....
     or computer network
    Computer network

    A computer network is a group of interconnected computers. Networks may be classified according to a wide variety of characteristics. This article provides a general overview of some types and categories and also presents the basic components of a network....
     connection and revealing the traffic data thereon. Bus or network behavior can then be analyzed to produce a stand-alone implementation that mimics that behavior. This is especially useful for reverse engineering device driver
    Device driver

    In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
    s. Sometimes, reverse engineering on embedded system
    Embedded system

    An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints....
    s is greatly assisted by tools deliberately introduced by the manufacturer, such as JTAG
    JTAG

    Joint Test Action Group is the common name used for the Institute of Electrical and Electronics Engineers 1149.1 standard entitled Standard Test Access Port and Boundary-Scan Architecture for test access ports used for testing printed circuit boards using boundary scan....
     ports or other debugging means. In Microsoft Windows
    Microsoft Windows

    Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
    , low-level debuggers such as SoftICE
    SoftICE

    SoftICE is a kernel mode debugger for Microsoft Windows. Crucially, it is designed to run underneath Windows such that the operating system is unaware of its presence....
     are popular.
  2. Disassembly using a disassembler
    Disassembler

    A disassembler is a computer program that translates machine language into assembly language?the inverse operation to that of an Assembly language#Assembler....
    , meaning the raw machine language of the program is read and understood in its own terms, only with the aid of machine-language mnemonic
    Mnemonic

    A mnemonic device is a memory aid. Commonly met mnemonics are often verbal, something such as a very short poem or a special word used to help a person remember something, particularly lists, but may be visual, kinesthetic or auditory....
    s. This works on any computer program but can take quite some time, especially for someone not used to machine code. The Interactive Disassembler
    Interactive Disassembler

    The Interactive Disassembler, more commonly known as simply IDA, is a commercial disassembler widely used for reverse engineering. It supports a variety of executables for different Central processing units and operating systems....
     is a particularly popular tool.
  3. Decompilation using a decompiler
    Decompiler

    A decompiler is the name given to a computer program that performs the reverse operation to that of a compiler. That is, it translates a file containing information at a relatively low level of abstraction into a form having a higher level of abstraction ....
    , a process that tries, with varying results, to recreate the source code in some high-level language for a program only available in machine code or bytecode.


Source code

A number of UML
Unified Modeling Language

Unified Modeling Language is a standardized general-purpose modeling language in the field of software engineering.UML includes a set of graphical notation techniques to create abstract models of specific systems....
 tools refer to the process of importing source code in order to generate UML diagrams as "reverse engineering". See List of UML tools
List of UML tools

This article lists Unified Modeling Language UML tools, classified by their Proprietary software or non-proprietary status....
.

Reverse engineering of integrated circuits/smart cards

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. 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. It takes very high effort to break a smart card used for payment, and the technical equipment is only available to large chip producers. Additionally, the gain is low due to other security mechanisms like shadow accounts.

Reverse engineering for military applications

Reverse engineering is often used by militaries in order to copy other nations' technologies, devices or information that have been obtained by regular troops in the fields or by intelligence
Military intelligence

Military intelligence , is a military service that uses List of intelligence gathering disciplines which informs the commanders' decision making process by providing intelligence analysis of Intelligence from a wide range of sources including forecast environmental changes , and opposing force intentions....
 operations. It was often used during the Second World War and the Cold War
Cold War

The Cold War was the continuing state of conflict, tension and competition that existed between a number of world powers, including the United States, the Soviet Union, People's Republic of China, France, United Kingdom and those countries' respective allies from the mid-1940s to the early 1990s....
. Well-known examples from WWII and later include
  • 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
    Tupolev Tu-4

    The Tupolev Tu-4 was a piston-engined Soviet Union strategic bomber aircraft which served the Soviet Air Force from the late 1940s to mid 1960s....
    : Three American B-29
    B-29 Superfortress

    The Boeing B-29 Superfortress was a four-engine Fixed-wing aircraft#Propeller aircraft heavy bomber that was flown by the United States Military in World War II and the Korean War, and by other nations afterwards....
     bombers on missions over Japan
    Japan

    Japan is an island country in East Asia. Located in the Pacific Ocean, it lies to the east of the Sea of Japan, People's Republic of China, North Korea, South Korea and Russia, stretching from the Sea of Okhotsk in the north to the East China Sea and Taiwan in the south....
     were forced to land in the USSR
    Soviet Union

    The Union of Soviet Socialist Republics was a Constitution of the Soviet Union socialist state that existed in Eurasia from 1922 to 1991.The name is a translation of the , romanization of Russian Soyuz Sovetskikh Sotsialisticheskikh Respublik, abbreviated ????, SSSR....
    . 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
    R-1 (missile)

    The R-1 rocket was a copy of the Germany V-2 rocket manufactured by the Soviet Union. Even though it was a copy, it was manufactured using Soviet industrial plants and gave the Soviets valuable experience which later enabled the USSR to construct its own much more capable rockets....
    , which began the postwar Soviet rocket program that led to the R-7
    R-7 Semyorka

    The R-7 Semyorka was the world's first true intercontinental ballistic missile and was deployed by the Soviet Union during the Cold War from 1959 to 1968....
     and the beginning of the space race
    Space Race

    File:Space race1.jpgThe Space Race was a competition of space exploration between the Soviet Union and the United States, which lasted roughly from 1957 to 1975....
    .
  • K-13/R-3S
    Vympel K-13

    The K-13 , was one of the world's most proliferated air-to-air missiles. Developed by the Soviet Union as a reverse-engineered copy of the AIM-9 Sidewinder, it saw widespread service in many nations....
     missile (NATO reporting name
    NATO reporting name

    NATO reporting names are unclassified code names for military equipment of the Eastern Bloc . They provide unambiguous and easily understood English language words in a uniform manner in place of the original designations ? which may have been unknown at the time or easily confused codes....
     AA-2 'Atoll), a Soviet reverse-engineered copy of the AIM-9 Sidewinder
    AIM-9 Sidewinder

    The AIM-9 Sidewinder is a Infrared homing, short-range, air-to-air missile carried by fighter aircraft and recently, certain Attack helicopter. It is named after the Crotalus cerastes, which detects its prey via body heat and also because of the peculiar snake-like path of flight the early versions had when launched....
    , 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
    BGM-71 TOW

    The BGM-71 TOW is an anti-tank guided missile. "TOW" stands for "Tube-launched Optically-tracked Wire-to-command-Link" guided Missile Set. The TOW was first produced in 1970 and is the most widely used anti-tank guided missile in the world....
     Missile: In May 1975, negotiations between Iran and Hughes Missile Systems on co-production of the TOW and Maverick missiles are 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
    Toophan

    Toophan is an Iranian anti-tank missile that is a reverse-engineered copy of the US military BGM-71 TOW. The Toophan's payload is a 3.6kg high-explosive anti-tank warhead that can penetrate up to 550mm of steel armor....
    .
  • China has reversed many examples of US and Russian hardware, from fighter aircraft to missiles and HMMWV cars.


Legality

In the United States and many other countries, even if an artifact or process is protected by trade secret
Trade secret

A trade secret is a formula, Best practice, process, design, Legal instrument, pattern, or compilation of information which is not generally known or reasonably ascertainable, by which a business can obtain an economic advantage over competitors or customers....
s, reverse-engineering the artifact or process is often lawful as long as it is obtained legitimately. Patent
Patent

A patent is a set of exclusive rights granted by a state to an inventor or his assignee for a term of patent in exchange for a disclosure of an invention....
s, on the other hand, need a public disclosure of an invention
Invention

An invention is the creation of a new configuration, composition of matter, device, or process. Some inventions are based on pre-existing models or ideas....
, 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 infringement
Patent infringement

Patent infringement is the act of utilizing a patented invention without permission from the patent holder. Permission may typically be granted in the form of a licence....
s or copyright infringement
Copyright infringement

Copyright infringement is the unauthorized use of material that is covered by copyright law, in a manner that violates one of the copyright owner's exclusive rights, such as the right to reproduce or perform the copyrighted work, or to make derivative works....
s.

Reverse engineering software or hardware systems which is done for the purposes of interoperability
Interoperability

Interoperability is a property referring to the ability of diverse systems and organizations to work together . The term is often used in a technical systems engineering sense, or alternatively in a broad sense, taking into account social, political, and organizational factors that impact system to system performance....
 (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."

See also

  • Antikythera mechanism
    Antikythera mechanism

    The Antikythera mechanism , is an ancient mechanical calculator designed to calculate astronomy positions. It was discovered in the Antikythera wreck off the Greece island of Antikythera, between Kythera and Crete, in 1901....
  • Benchmarking
    Benchmarking

    Benchmarking is the process of comparing the cost, cycle time, productivity, or quality of a specific process or method to another that is widely considered to be an industry standard or best practice....
  • Bus analyzer
    Bus analyzer

    A bus analyzer is a computer bus analysis tool, often a combination of hardware and software, used during development of hardware or device drivers for a specific bus, diagnosing bus or device failures, or reverse engineering....
  • Clean room design
    Clean room design

    Clean room design is the method of copying a design by reverse engineering and then recreating it without infringing any of the copyrights and trade secrets associated with the original design....
  • Code morphing
    Code morphing

    Code morphing is one of the approaches to protect software applications from reverse engineering, analysis, modifications, and cracking used in obfuscating software....
  • Connectix Virtual Game Station
    Connectix Virtual Game Station

    The Virtual Game Station was an emulator by Connectix that allows Sony PlayStation games to be played on a desktop computer. It was first released for the Apple Macintosh, in 1999....
  • Decompiler
    Decompiler

    A decompiler is the name given to a computer program that performs the reverse operation to that of a compiler. That is, it translates a file containing information at a relatively low level of abstraction into a form having a higher level of abstraction ....
  • Digital Millennium Copyright Act
    Digital Millennium Copyright Act

    The Digital Millennium Copyright Act is a United States copyright law that implements two 1996 treaties of the World Intellectual Property Organization ....
     (DMCA)
  • Forensic engineering
    Forensic engineering

    Forensics engineering is the investigation of material science, product , structures or components that fail or do not operate/function as intended, causing personal injury or damage to property....
  • Interactive Disassembler
    Interactive Disassembler

    The Interactive Disassembler, more commonly known as simply IDA, is a commercial disassembler widely used for reverse engineering. It supports a variety of executables for different Central processing units and operating systems....
  • J. Brant Arseneau
    J. Brant Arseneau

    Joseph Brant Arseneau is mainly known in finance for his ability aid banks in the development of trading and risk systems. He was also involved in the development of the Renewable Energy Derivative, which is a structured product that securitizes renewable energy into property-based debt obligations backed by the cash flows of excess energy...
  • Knowledge Discovery Metamodel
    Knowledge Discovery Metamodel

    Knowledge Discovery Metamodel is publicly available specification from the Object Management Group . KDM is a common intermediate representation for existing software systems and their operating environments, that defines common metadata required for deep semantic integration of Application Lifecycle Management tools....
  • List of production topics
    List of production topics

    * Manufacturing and manufacturing systems** Manufacturing** Factory** Craft production** English system of manufacturing** American system of manufacturing...
  • Logic analyzer
    Logic analyzer

    A logic analyzer is an electronic instrument that displays signals in a digital circuit that are too fast to be observed and presents it to a user so that the user can more easily check correct operation of the digital system....
  • Paycheck (film)
    Paycheck (film)

    Paycheck is a 2003 in film film adaptation of the short story Paycheck by science fiction writer Philip K. Dick. The film was directed by John Woo and stars Ben Affleck, Uma Thurman and Aaron Eckhart....
  • Value engineering
    Value engineering

    Value engineering is a systematic method to improve the "value" of goods or products and services by using an examination of function....
  • Cryptanalysis
    Cryptanalysis

    Cryptanalysis is the study of methods for obtaining the meaning of encrypted information, without access to the secret information which is normally required to do so....


Further reading



External links


  • by David C. Musker