Technical Essay: Reverse Engineering Tatiana Yaldaie
Technical Essay: Reverse Engineering Tatiana Yaldaie
Tatiana Yaldaie
Computer-aided systems engineering environments have redefined how many companies are
approaching the production of systems. CASE environments are being applied to the problems
of managing and upgrading existing systems to reach their true potential. The key lies in applying
methods of reverse engineering software systems. An obstacle to progress, however, is the
substantial ambiguity over the language used in both technical and business discussions.
(Chikofsky, E. J. & Cross, J. H., 1990)
Various words for techniques in the reverse engineering field have often been misused or used
in contradictory ways to examine and understand existing systems. The word "reverse
engineering" has its roots in hardware research-where the process of deciphering finished product
designs is commonplace. In order to improve goods and to evaluate the products of a rival or
those of an enemy in a situation of military or national security, reverse engineering is routinely
applied. By orderly review of specimens of that system, reverse engineering can be described as
the process of developing a collection of specifications for a complex hardware system.
(Chikofsky, E. J. & Cross, J. H., 1990)
Reverse engineering is the process of analyzing a subject system to identify the components of
the system and its interrelationships and to establish system representations in another type or
at a higher level of abstraction. In general, reverse engineering requires the extraction of design
objects and the creation or synthesis of abstractions that are less dependent on implementation.
Although reverse engineering sometimes includes as its topic an established functional system,
that is not a prerequisite. Reverse engineering can be performed from any abstraction level, or at
any stage of the life cycle. (Chikofsky, E. J. & Cross, J. H., 1990)
In and of itself, reverse engineering does not involve changing the subject system or creating a
new system based on the reverse engineered subject system. It is a review process and not a
modification or duplication process. (Chikofsky, E. J. & Cross, J. H., 1990)
Reverse engineering's primary purpose in software system is to improve the system's overall
comprehensibility for both maintenance and new development. There are six key goals beyond
the above descriptions that will drive its path as the technology matures:
Cope with complexity.
Strategies for better handling the shear volume and system complexity need to be developed.
Automated support is a key to managing certain attributes. In conjunction with CASE settings,
reverse-engineering approaches and techniques will provide a way of collecting relevant
information so that decision-makers can control the process and the product in emerging systems.
Most reverse engineering, redesign and reengineering techniques are using the same basic
architecture. The new views on the right may be items for software research, shown on the left.
Graphical representations were long accepted as aids to comprehension. The creation and
maintenance of these products remains a bottleneck in the process. Reverse engineering tools
allow the creation or reuse of other types of graphical representations. While many designers
work from a single, primary viewpoint, reverse engineering software may generate additional
views from other viewpoints to assist the process of analysis and verification. Alternate types of
nongraphic representations can also be generated with reverse engineering software to form an
important part of machine documentation.
Recover lost information
Detect side effects
Synthesize higher abstractions
Reverse engineering includes methods and techniques to create alternative views which
transcend to higher levels of abstraction. In the tech world, there is controversy about how the
mechanism can be completely automated. Certainly, technology experts system will play a major
role in exploiting the full potential of high-level abstractions.
Facilitate reuse (Chikofsky, E. J. & Cross, J. H., 1990)
Reverse engineering is aimed at retrieving design views from the source code, giving
programmers a faithful, high-level software representation that guarantees consistency with the
actual implementation. Reverse engineering will assist the activities by providing detailed
information on the organizations and relationships of the principal system. Whilst using reverse
engineering techniques, it is important to be aware of certain trade-offs which may affect the
accuracy and reliability of the information retrieved. (Tonella, P., n.d.)
Recent research was conducted to reveal the most recent topics on the topic. New tools
supporting reverse engineering system are being built. An example of such a tool is PANDA, an
open-source tool. It is based on the entire emulator of the QEMU framework and thus analyzes
have access to all executing code in the guest and all details. PANDA provides the ability to record
and replay operations, allowing for iterative, comprehensive, complete analysis of the program.
Furthermore, the replay log files are lightweight and shareable, enabling repeatable experiments.
(Dolan-Gavitt, B. et al., 2015)
Another tool is Reverse Engineering Finite State Machine (REFSM), which helps end-users
rebuild a high-level description of a flattened netlist control logic. It is demonstrated that REFSM
effectively recovers circuit control logic from netlists with varying complexity levels. Experimental
results also revealed that a flattened (or even obfuscated) netlist could easily recognize malicious
logic from the established tool. When combined with reverse engineering techniques at chip level,
the built REFSM method can help detect intrusion of Trojan hardware into manufactured circuits.
(Meade, T. & Zhang, S. & Jin, Y., 2016).
Reverse engineering is also studied in connection to social media. For example, how reverse
engineering is applied to socialbot strategies in the Twitter. Socialbots with both positive and
malicious motives can theoretically be used in OSNs. For example, most conferences today hire
automated bot accounts to boost the conference's ads. On the other hand, malicious socialbots
often exist in Twitter, and various forms of spam attacks – such as link-farming, search spam and
phishing – may use socialbots to initially penetrate and gain influence, making the attacks even
harder to detect. (Freitas, C. & Benevenuto, F. & Ghosh, S. & Veloso, A., 2015)
Study on how reverse engineering is connected to other fields exists. Reverse engineering and
reconstruction of shapes play an important role in design and manufacturing by increasing the
use of shape acquisition and processing techniques in the process of product development.
Applying shape theories to geometric modeling and characterization of variation paves the way
for reverse engineering to shape engineering and more common methods. In order to address
geometric reverse engineering problems in mechanical design, the authors explore the principles
of shape representation, shape processing and mining at the conceptual, geometrical and
computational levels. Newly developed ideas are introduced, based on discrete curvatures and
their applications. It also addresses problems and future researches. (Anwer, N. & Mathieu, L.,
2016)
Reverse engineering is quickly becoming an essential and recognized competent for potential
CASE environments. Since the whole life cycle is inherently an iterative operation, reverse
engineering tools can provide a significant link in the creation and maintenance process as a
whole.
References
Anwer, N., & Mathieu, L. (2016) From reverse engineering to shape engineering in mechanical
design. CIRP Annals, 65(1), 165–168.
Chikofsky, E. J., & Cross, J. H. (1990) Reverse engineering and design recovery: a taxonomy.
IEEE Software, 7(1), 13–17.
Dolan-Gavitt, B. et al., (2015) Repeatable Reverse Engineering with PANDA. PPREW-5:
Proceedings of the 5th Program Protection and Reverse Engineering Workshop. Article No.: 4.
Pages 1–11
Freitas, C., Benevenuto, F., Ghosh, S., & Veloso, A. (2015) Reverse Engineering Socialbot
Infiltration Strategies in Twitter. Proceedings of the 2015 IEEE/ACM International Conference on
Advances in Social Networks Analysis and Mining 2015 - ASONAM ’15.
Meade, T., Zhang, S., & Jin, Y. (2016) Netlist reverse engineering for high-level functionality
reconstruction. 2016 21st Asia and South Pacific Design Automation Conference (ASP-DAC).
Tonella, P. (n.d.). Reverse engineering of object oriented code. Proceedings. 27th International
Conference on Software Engineering, 2005. ICSE 2005.