FACTOID # 27: If you're itching to live in a trailer park, hitch up your home and head to South Carolina, where a whopping 18% of residences are mobile homes.
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 


FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:



(* = Graphable)



Encyclopedia > Reverse engineered

Reverse engineering (RE) is the process of taking something (a device, an electrical component, a software program, etc.) apart and analyzing its workings in detail, usually with the intention to construct a new device or program that does the same thing without actually copying anything from the original. The verb form is to reverse-engineer, spelled with a hyphen.

Reverse-engineering is commonly done to avoid copyrights on desired functionality, and may be used for avoiding patent law, though this is a bit risky: patents apply to the functionality, not a specific implementation of it.

Reverse-engineering is a often used by military, in order to copy other nations' technology, parts of which have been obtained by intelligence operations. It was often used during Second World War and Cold War.

Reverse-engineering software or hardware systems for the purposes of interoperability, for example in order to support undocumented file formats or hardware peripherals, is mostly believed to be legal, though patent owners often aggressively pursue their patents.

Other purposes of reverse-engineering include security auditing, removal of copy protection ("cracking"), circumvention of access restrictions often present in consumer electronics and customization of embedded systems, for example engine management systems.


Reverse engineering of electronic components

Coordinate-measuring machines (CMM) can be used to digitize a circuit and the information can be utilised in computer-aided modelling. New and improved techniques in reverse engineering include laser scanning which, as the name implies, uses laser beams to scan across the surface of components of any shape and display the results in real time.

Reverse engineering of software

Reverse engineering can also apply to software. For example, reverse engineering of binaries for the Java platform can be accomplished using ARGOuml.org (http://www.ARGOuml.org). One very famous case of reverse engineering was the first non-IBM implementation of BIOS.

In the United States, the Digital Millennium Copyright Act exempts from the circumvention ban some acts of reverse engineering aimed at interoperability of file formats and protocols (17 USC 1201 (http://www4.law.cornell.edu/uscode/17/1201.html)(f)), but judges in key cases have ignored this law, since it's acceptable to circumvent restrictions for use, but not for access.

The Samba software, which allows systems that are not running Microsoft Windows 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 this. The WINE project does the same thing for the Windows API, and OpenOffice.org is one party doing this for the Microsoft Office file formats.

Reverse engineering of software can be accomplished by various methods. The two main groups of reverse engineering is analysis through observation of information exchange (most prevalent in protocol reverse engineering) and decompilation or disassembly using a disassembler.

Reverse engineering as business research

Reverse engineering is also used by businesses to assess competitors' products. It is used to analyze, for instance, how a competitor's product works, what it does, who manufactures it, 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 analysing products, but the objective is to find opportunities for cost cutting.

Reverse engineering in military

Examples of military reverse engineered projects include:

See also

External links

  • Introduction to Reverse Engineering Software (http://www.acm.uiuc.edu/sigmil/RevEng/), preprint of a book by Mike Perry and Nasko Oskov.
  • InteractiveDisAssembler (http://www.datarescue.com/idabase/index.htm)
  • Win32 DisAssembler (http://www.heaventools.com/PE_Explorer_disassembler.htm)
  • Information for people interested in reverse engineering (http://revenge.berlios.de/)
  • Overview of reverse engineering and program transformation (http://www.program-transformation.org/Transform/ReverseEngineering/)
  • CNN: How Soviets copied America's best bomber during WWII (http://archives.cnn.com/2001/US/01/25/smithsonian.cold.war/)
  • Reverse engineering of Tu-4 on globalsecurity.com (http://www.globalsecurity.org/wmd/world/russia/tu-4.htm)
  • AGATHA from APPLE II and other computer r.e. (http://reformed-theology.org/html/books/best_enemy/chapter_05.htm)
  • Tu-4 Soviet Copy of the B-29 (http://www.csd.uwo.ca/~pettypi/elevon/baugher_us/b029-29.html)
  • Third World Missiles (http://www.abc.net.au/science/k2/moments/s822349.htm)
  • Low-level software code analysis (http://www.conus.info/v4)

  Results from FactBites:
Chilling Effects Clearinghouse: Reverse Engineering (0 words)
Reverse engineering is also an invaluable teaching tool used by researchers, academics and students in many disciplines, who reverse engineer technology to discover, and learn from, its structure and design.
Although some reverse engineering techniques require making a copy of the software being investigated, an act that would otherwise be considered a copyright violation, copyright law has allowed these reverse engineering copies as a form of "fair use." Increasingly, however, contract clauses forbidding reverse engineering are included in technology licenses.
Reverse engineers must carefully consider their planned work and whether it fits into the exception, because the exception is far too narrow to be useful for many reverse engineering needs.
Reverse Engineering Overview (716 words)
Reverse engineering is a development method that uses information about an existing entity to produce a new entity that has some of the same properties of the existing entity.
Dirty-room reverse engineering done by the same engineers who create emulation software runs the risk of deliberate or accidental copyright violations by incorporating portions of the software to be emulated in the emulator.
In Strictly Clean-Room Reverse Engineering, when it is determined that the specification that the clean-room engineers are working from is insufficient to produce the degree of compatibility desired, the only recourse is to search for additional documentation or to write additional tests.
  More results at FactBites »



Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m