Reverse Engineering

Reverse Engineering (English, means: reverse-engineer, reconstruct, symbol: RE), also re-design, is the process of extracting from an existing, installed system or a mostly industrially manufactured product by examining the structures, conditions and behaviors that design elements. A plan is therefore once again created from the finished object. In contrast to a functional re-enactment, which can also be based on analyzes using the Black- box principle, will be pursued through reverse engineering, largely reflect the present object exactly. Attempts are often made to verify the insights obtained to make a 1:1 copy of the object, based on which it is generally possible to run further.

Areas of application

IT

To examine hardware for the purpose of reproduction, have been developed, for example in the GDR methods in which a chip die was in layers removed were examined ( by grinding or selective etching ) and then the levels by microscope to determine the functionality and hardware-based. In this way a Z80 replica was created as U 880 These reports are credible, as some companies offer such services today and successfully deliver.

Specifically related to computer software, is usually meant by one of the three following operations:

  • The recovery of the source code or a comparable description of machine code. For example, by an executable program or a program library, such as a disassembler ( can be part of a debugger ) or a decompiler.
  • The development of the rules of a communication protocol from the observation of communication, for example with a sniffer.
  • The subsequent creation of a model, starting from already present source code in object-oriented programming.

In the first case Decompiler are often used that are largely automatically recover the source code of a program from its binary code. If this is not possible throughout, the directly identifiable from the binary code of the program with a disassembler machine code can also be analyzed manually, however, which means a significant difficulty. It can not be determined, the entire program source code typically because, for example comments never and local object names are rarely included in the available binary code. Often the result despite everything for the particular purpose is sufficient, such as behavioral analysis of a software system or as an aid to correct an error.

Reverse engineering is often necessary when, for example, the developers of an operating system which is free software want to write a device driver for a particular device, because the requisite information is secret in many cases. But here often enough to the sniffing of the communication and of the device in question, so the second method. Disassemble or decompile an existing device driver, such as from a non- free operating system, is not usually necessary.

Another field of application source reconstructions of abandonware become computer game classics like Another World, to, inter alia, Be able to make porting to current platforms.

In the third case, one speaks but in contrast to the reverse engineering especially during the software development process of code return if modified manually from a design specification obtained source code and the modified source code is copied back into the model of the design specification in order to be further processed there can (especially with Single Source cASE tools ). This is also possible when with advanced and extensive software projects no draft specification exists for example in UML and to be subsequently produced.

Engineering

In mechanical engineering, especially objects with free-form surfaces are subjected to a reverse engineering. Free-form surfaces come in mechanical engineering mainly in automotive technology ( car body ), Ur and metal forming machines and energy range ( turbine and compressor blades ) before. It is here in the narrow sense to the digitization grown, ie, naturally arisen objects such as processed by hand objects from the design area of automotive or manually created design studies, a further computer-aided machining, such as production, flow or FEM simulation should be made available. The application of these specially developed for engineering solutions for other areas, such as medicine or art, has arrived for some years. In this day and age more and more complex or embellished by Designer objects are developed. It can reverse engineering save a lot of time and money in development.

Another application is the reverse target-actual comparison. Here, for example, an injection molded part is modeled on CAD ​​, manufactured, digitized by reverse engineering again and compared to the computer with the desired part.

Reverse engineering involves both the return of the characteristics of an object in a reproducible output model, as well as the strategic considerations of how this feedback has to run. This includes both the selection of a number of physically present objects, from which an optimal object is determined randomly, and the functional consideration of interaction sites with the corresponding objects. Only as the original manufacturing tolerances, and thus a deterioration of the recirculated data can be minimized. (Avoiding the principle of " Whispers" )

To digitize usually offer optical or laser-based 3D scanner. The actual reverse process settles after scanning. That is, it is the interface between the point cloud generated by the scanner and a CAD model with certain object and surface properties. The automated 3D scanning and the geometry comparison are therefore also suitable for quality control and continuous quality control in production.

Let us first not about to copy existing designs in terms of industrial espionage. The methods that are applied in reverse engineering are, in principle, suitable for piracy.

The generation of these geometric properties can be divided into two categories:

  • Parameterized feedback: This simple geometry elements are placed on the point cloud and assembled into a whole. This is mainly to spheres, circles, areas second, third and fourth degree, etc.
  • Non parametric feedback: This method is used for objects that do not have explicit geometry characteristics. A type of fishnet stocking is pulled over the entire object. The mesh of the stocking forming the surfaces of the CAD model. These areas have no actual geometry elements more and are divided by a plurality of small areas of so-called grids.

Legal Aspects

Many companies prohibit reverse engineering of their products through the appropriate license conditions. The analysis of protocols of which is legally not affected because this software is not subject of the investigation itself. In addition, such license clauses in many countries generally invalid because the users of a thing by law has the right to verify the application security (see also Trojan Horse ) or troubleshooting to undergo one of them acquired a software product reverse engineering. The pure examining things that belong yourself, you may, if appropriate, assign to the freedom of research, so also not access license clauses.

Often such a license clauses serve more the purpose of deterrence and are thus to be understood as a unilateral expression of will or according to the form as a prophylactic to unilaterally put forward legal opinion, which may have no confirmation and thus no further backlog of independent legal review. In software, we often speak of the so-called in the German area generally dubious " Shrink Wrap License" agreement.

However, you can, if necessary, by penalty are committed to payment in the event of detected infringement. This form of individual contract binding you can have very good subject perfectly legal under certain circumstances, mostly involving here to prototypes or small series, which still contain significant amounts of trade secrets. Often discounts in favor of the buyer be given for this reason ( in return for reduction in use at any time), or an attempt is made to cover by the above mentioned penalty genuine risk of the seller (eg, disclosure of secrets ), at least to some extent. Furthermore, in sensitive objects takes place and the method of time-limited free loan provision.

Long also Encryption and obfuscation is used in computer technology, being understood, of course, primarily the reverse engineering to be more difficult, but also increasingly, because thereby the amended laws on copyright in relation to copyright protection and the rights attaching thereto penalties could come to fruition. One example is the prosecution of Dmitry Sklyarov Russians led in the U.S. under the DMCA laws work for decoding only text documents in 2001. However, in October 2003 the U.S. Congress made ​​four additions to the DMCA, which, among other things happen defined the purpose of the preservation of digital works as a temporary exception and allow for necessary techniques such as reverse engineering again.

" 3 Computer programs and video games distributed in formats thathave become obsolete and require the original media or Which hardware as a condition of access. The register ... Has Concluded did to the extent libraries and archives did wish to make preservation copies of published software and video games distributed in formats thatwere did are ( Either Because The physical medium on Which theywere distributed is no longer in use or Because the use of an obsolete operating system is required), search activity is a noninfringing use covered by section 108 ( c ) of the Copyright Act. "

In November 2006, the Library of Congress of the United States has agreed to a permanent exception to the DMCA, which allows you to bypass a copy protection software that is no longer sold or supported by the copyright owner ( abandonware ), so archiving and digital preservation without fear of prosecution is not possible.

If one uses the result of the reverse engineering to the commercial replica, it will be (eg plagiarism) see with the large amount of industrial property rights faced in a similar manner, as well as in results of the ordinary independent research and development of the case can be (eg patent ).

302685
de