Constructive and Destructive Reverse Engineering Aspects of Digital Systems

Total Page:16

File Type:pdf, Size:1020Kb

Constructive and Destructive Reverse Engineering Aspects of Digital Systems CONSTRUCTIVE AND DESTRUCTIVE REVERSE ENGINEERING ASPECTS OF DIGITAL SYSTEMS DISSERTATION zur Erlangung des Grades eines Doktor-Ingenieurs der Fakultat¨ fur¨ Elektrotechnik und Informationstechnik an der Ruhr-Universitat¨ Bochum by Marc Fyrbiak Bochum, May 2018 Copyright © 2018 by Marc Fyrbiak. All rights reserved. Printed in Germany. To my beloved family. Marc Fyrbiak Place of birth: Braunschweig, Germany Author’s contact information: [email protected] www.emsec.rub.de Thesis Advisor: Prof. Dr.-Ing. Christof Paar Ruhr-Universit¨atBochum, Germany Secondary Referee: Prof. Russell Tessier University of Massachusetts Amherst, MA, USA Thesis submitted: May 30, 2018 Thesis defense: September 21, 2018 Last revision: April 26, 2019 v vii Abstract Our modern digital society stands on the foundation of digital hardware systems implemented in a myriad of interconnected smart-X devices as well as traditional computing systems realizing technological trends such as cloud computing. Since these devices and systems are an integral part of our everyday life, targeted manipulations of digital hardware systems have devastating consequences for safety, security, and privacy. In today’s production chains, hardware designs are transparent to numerous untrusted stake- holders and thus inevitably prone to manipulations and Intellectual Property (IP) piracy. In many attack scenarios, an adversary merely has access to the low-level, potentially obfuscated gate-level netlist and faces the costly and time-consuming task of reverse engineering the pro- prietary design to identify security-critical circuitry, followed by the insertion of a meaningful hardware Trojan. However, these challenges of destructive aspects have been only considered in passing by the research community. In addition to destructive aspects, hardware reverse engineering facilitates various constructive applications and can thus safeguard digital hardware systems. For example, security engineers are forced to leverage reverse engineering in order to witness hardware Trojans in untrusted third-party IP cores as source code is typically not available. Moreover, understanding the complexity of hardware reverse engineering facilitates sound countermeasures for hardware protection schemes. So far reverse engineering is commonly neglected in the security analysis of various schemes since it is still an opaque and poorly understood process. In order to systematically investigate constructive and destructive aspects of gate-level netlist reverse engineering, we first address the lack of gate-level netlist reverse engineering and manipu- lation frameworks in the open literature and then present a holistic framework called HAL. HAL supports and automates custom reverse engineering tasks and enables tailored manipulations with ease. Based on its extensibility, we investigate diverse technical aspects of gate-level netlist reverse engineering and provide several research contributions such as the many-faceted workflow of semi-automated hardware Trojan insertion, costs associated with reverse engineering based on graph similarity algorithms, and novel insights on the (in-)security of several Finite State Machine (FSM)-based hardware obfuscation schemes. Moreover, we investigate cognitive aspects of reverse engineering and develop a methodology based on problem solving research and research on the acquisition of expertise to quantify the crucial human factor in hardware reverse engineering. As an important finding we show that development of automated custom tools for reverse engineering and hardware Trojan injection is not as challenging and time-consuming as previously thought. Keywords. Gate-level Netlist Reverse Engineering, Cognitive Aspects of Reverse Engineering, Hardware Obfuscation, Hardware Trojans, Graph Similarity Kurzfassung Unsere moderne digitale Gesellschaft steht auf dem Fundament von digitalen Hardware Systemen, die in einer Vielzahl von verbundenen smart-X Ger¨aten und traditionellen Computersystemen verbaut sind. Da diese Ger¨ate und Systeme integraler Bestandteil unseres t¨aglichen Lebens geworden sind, haben gezielte Manipulation dieser Hardware Systemen verheerende Auswirkungen fur¨ die Sicherheit und Privatheit. In heutigen Produktionsketten sind Hardware Designs transparent fur¨ viele nicht vertrau- enswurdige¨ Stakeholder und damit zwangsl¨aufig anf¨allig fur¨ Manipulation und IP Piraterie. In vielen Angriffsszenarien hat ein Angreifer allerdings nur Zugang zur low-level, potentiell obfuskierten, gate-level Netzliste und steht daher dem kosten- und zeitaufwendigem Reverse Engineering gegenuber:¨ Zuerst mussen¨ sicherheitsrelevante Elemente im Schaltkreis idenzifiziert werden und anschließend ein sinnvoller Hardware Trojaner eingefugt¨ werden. Jedoch wurden diese Herausforderungen bisher nur fluchtig¨ von der Forschungsgemeinschaft behandelt. Zus¨atzlich zu destruktiven Aspekten erm¨oglicht Hardware Reverse Engineering verschiedene konstruktive Applikationen um Hardware Systeme abzusichern. So sind Sicherheitsingenieure dazu gezwungen nicht vertrauenswurdige¨ Designs von Drittparteien per Reverse Engineering zu analysieren um Hardware Trojaner zu identifizieren, da der Quellcode typischerweise nicht verfugbar¨ ist. Außerdem erm¨oglicht ein genaueres Verst¨andnis von Hardware Reverse Engi- neering die Entwicklung solider Schutzmaßnahmen. Jedoch wurde Reverse Engineering in der Sicherheitsanalyse von verschiedenen Schutzmaßnahmen vernachl¨assigt, da Reverse Engineering immer noch ein undurchsichtiger und kaum verstandener Prozess ist. Um systematisch konstruktive und destruktive Aspekte von gate-level Netlist Reverse En- gineering zu erforschen, beschreiben wir zuerst das Fehlen eines Netlist Reverse Engineering- und Manipulationsframeworks in der ¨offentlich zug¨anglichen Literatur und pr¨asentieren ein ganzheitliches Framework namens HAL. HAL unterstutzt¨ und automatisiert maßgeschneiderte Reverse Engineering Aufgaben und erm¨oglicht zielgerichtete Manipulation. Basierend auf der Erweiterbarkeit von HAL untersuchen wir verschiedene technische Aspekte von gate-level Netlist Reverse Engineering und wir liefern mehrere Forschungsbeitr¨age, z. B. den facettenreichen Arbeitsablauf der teilautomatisierten Hardware Trojaner Einfugung,¨ Reverse Engineering Kosten basierend auf Graph Ahnlichkeitsanalysen,¨ sowie neue Erkenntnisse bzgl. der (Un-)Sicherheit von mehreren Obfuskationsschemata basierend auf endlichen Zustandsautomaten. Außerdem untersuchen wir kognitive Aspekte beim Reverse Engineering und wir entwickeln eine Methodik basierend auf Probleml¨ose- und Expertiseforschung, um entscheidende menschlichen Faktoren beim Hardware Reverse Engineering zu untersuchen. Gegens¨atzlich zur bisherigen Meingung zeigen wir, dass die Entwicklung von automatisierten maßgeschneiderten Werkzeugen zum Rever- se Engineering und zur Hardware Trojaner Einfugung¨ nicht anspruchsvoll und zeitaufwendig sind. Schlagworte. Gate-level Netlist Reverse Engineering, Kognitive Aspekte von Reverse Engi- neering, Hardware Obfuskation, Hardware Trojaner, Graph Ahnlichkeit¨ Acknowledgements I want to express my sincere gratitude to my Doktorvater Christof Paar for his continuous excellent advises far beyond the scope of research. His positive and inspiring nature formed an outstanding education for both research and teaching. In particular, I want to thank him for pushing Philipp, Benjamin, and myself to founding our start-up. Moreover, my sincere thanks are given to Russell Tessier for being like a second Doktorvater to me, for his excellent guidance in the field of computer architecture and for improving my writing. Moreover I want to thank Irmgard for her overall support with any office and administration issues, and our office (chit)chat. Furthermore thanks to Horst for solving all technical issues and satisfying our technical requirements. Many thanks to all my colleagues at EMSEC, SYSSEC, and SecHuman for numerous interesting conversations about security research and aspects about research in general. Special thanks to Nicolai for his kind introduction to statistics research and our conversations about technology. Another special thanks go to Nikol, Malte, Sebastian and Carina for being so patient in teaching me psychology. I want to thank our Chaos WG with Philipp, Benjamin, and Christian for exploration of IT-security research as well as our spare time enjoyed together. In addition, I want to thank my office mates (in chronological order) Ingo, Christian, Pawel, Max, Sebastian, and Nils for numerous inspiring technical and non-technical discussions. My sincere gratitude to all my co-authors and colleagues for spending nights in the office right before submissions deadlines and all of my students I supervised during my research time — I was very lucky to supervise you and learned a lot from you! Last but not least I want to thank my family and friends for their love and support throughout the years. Table of Contents Imprint . .v Preface . vii Abstract . vii Kurzfassung . ix Acknowledgements . xiii I Introduction1 1 Introduction 3 II Background7 2 Technical Background9 2.1 Hardware Design Process . .9 2.2 Gate-level Netlists . 10 2.3 Adversary Model . 11 2.4 Hardware Reverse Engineering . 11 2.4.1 Chip-level Reverse Engineering . 11 2.4.2 FPGA Bitstream Reverse Engineering . 12 2.4.3 Gate-level Netlist Reverse Engineering . 12 2.5 Hardware Trojan Detection and Manipulation . 13 2.6 Hardware Protection . 13 III Gate-level Netlist Reverse Engineering 15 3 HAL- Gate-level Netlist Reverse Engineering and Manipulation
Recommended publications
  • Development of Systemc Modules from HDL for System-On-Chip Applications
    University of Tennessee, Knoxville TRACE: Tennessee Research and Creative Exchange Masters Theses Graduate School 8-2004 Development of SystemC Modules from HDL for System-on-Chip Applications Siddhartha Devalapalli University of Tennessee - Knoxville Follow this and additional works at: https://trace.tennessee.edu/utk_gradthes Part of the Electrical and Computer Engineering Commons Recommended Citation Devalapalli, Siddhartha, "Development of SystemC Modules from HDL for System-on-Chip Applications. " Master's Thesis, University of Tennessee, 2004. https://trace.tennessee.edu/utk_gradthes/2119 This Thesis is brought to you for free and open access by the Graduate School at TRACE: Tennessee Research and Creative Exchange. It has been accepted for inclusion in Masters Theses by an authorized administrator of TRACE: Tennessee Research and Creative Exchange. For more information, please contact [email protected]. To the Graduate Council: I am submitting herewith a thesis written by Siddhartha Devalapalli entitled "Development of SystemC Modules from HDL for System-on-Chip Applications." I have examined the final electronic copy of this thesis for form and content and recommend that it be accepted in partial fulfillment of the equirr ements for the degree of Master of Science, with a major in Electrical Engineering. Dr. Donald W. Bouldin, Major Professor We have read this thesis and recommend its acceptance: Dr. Gregory D. Peterson, Dr. Chandra Tan Accepted for the Council: Carolyn R. Hodges Vice Provost and Dean of the Graduate School (Original signatures are on file with official studentecor r ds.) To the Graduate Council: I am submitting herewith a thesis written by Siddhartha Devalapalli entitled "Development of SystemC Modules from HDL for System-on-Chip Applications".
    [Show full text]
  • A Fedora Electronic Lab Presentation
    Chitlesh GOORAH Design & Verification Club Bristol 2010 FUDConBrussels 2007 - [email protected] [ Free Electronic Lab ] (formerly Fedora Electronic Lab) An opensource Design and Simulation platform for Micro-Electronics A one-stop linux distribution for hardware design Marketing means for opensource EDA developers (Networking) From SPEC, Model, Frontend Design, Backend, Development boards to embedded software. FUDConBrussels 2007 - [email protected] Electronic Designers Problems Approx. 6 month design development cycle Tackling Design Complexity Lower Power, Lower Cost and Smaller Space Semiconductor Industry's neck squeezed in 2008 Management (digital/analog) IP Portfolio FUDConBrussels 2007 - [email protected] FUDConBrussels 2007 - [email protected] A basic Design Flow FUDConBrussels 2007 - [email protected] TIP: Use verilator to lint your verilog files. Most of the Veripool tools are available under FEL. They are in sync with Wilson Snyder's releases. FUDConBrussels 2007 - [email protected] FUDConBrussels 2007 - [email protected] GTKWaveGTKWave Don'tDon't forgetforget itsits TCLTCL backendbackend WidelyWidely usedused togethertogether withwith SystemCSystemC FUDConBrussels 2007 - [email protected] Tools Standard Cell libraries FUDConBrussels 2007 - [email protected] BackendBackend designdesign Open Circuit Design, Electric FUDConBrussels 2007 - [email protected], Toped gEDA/gafgEDA/gaf Well known and famous. A very good example of opensource
    [Show full text]
  • Simulator for the RV32-Versat Architecture
    Simulator for the RV32-Versat Architecture João César Martins Moutoso Ratinho Thesis to obtain the Master of Science Degree in Electrical and Computer Engineering Supervisor(s): Prof. José João Henriques Teixeira de Sousa Examination Committee Chairperson: Prof. Francisco André Corrêa Alegria Supervisor: Prof. José João Henriques Teixeira de Sousa Member of the Committee: Prof. Marcelino Bicho dos Santos November 2019 ii Declaration I declare that this document is an original work of my own authorship and that it fulfills all the require- ments of the Code of Conduct and Good Practices of the Universidade de Lisboa. iii iv Acknowledgments I want to thank my supervisor, Professor Jose´ Teixeira de Sousa, for the opportunity to develop this work and for his guidance and support during that process. His help was fundamental to overcome the multiple obstacles that I faced during this work. I also want to acknowledge Professor Horacio´ Neto for providing a simple Convolutional Neural Net- work application, used as a basis for the application developed for the RV32-Versat architecture. A special acknowledgement goes to my friends, for their continuous support, and Valter,´ that is developing a multi-layer architecture for RV32-Versat. When everything seemed to be doomed he always had a miraculous solution. Finally, I want to express my sincere gratitude to my family for giving me all the support and encour- agement that I needed throughout my years of study and through the process of researching and writing this thesis. They are also part of this work. Thank you. v vi Resumo Esta tese apresenta um novo ambiente de simulac¸ao˜ para a arquitectura RV32-Versat baseado na ferramenta de simulac¸ao˜ Verilator.
    [Show full text]
  • Reverse Engineering Digital Forensics Rodrigo Lopes October 22, 2006
    Reverse Engineering Digital Forensics Rodrigo Lopes October 22, 2006 Introduction Engineering is many times described as making practical application of the knowledge of pure sciences in the solution of a problem or the application of scientific and mathematical principles to develop economical solutions to technical problems, creating products, facilities, and structures that are useful to people. What if the opposite occurs? There is some product that may be a solution to some problem but the inner workings of the solution or even the problem it addresses may be unknown. Reverse engineering is the process of analyzing and understanding a product which functioning and purpose are unknown. In Computer Science in particular, reverse engineering may be defined as the process of analyzing a system's code, documentation, and behavior to identify its current components and their dependencies to extract and create system abstractions and design information. The subject system is not altered; however, additional knowledge about the system is produced. The definition of Reverse Engineering is not peaceful though, especially when it concerns to court and lawsuits. The Reverse Engineering of products protected by copyrighting may be a crime, even if no code is copied. From the software companies’ point of view, Reverse Engineering is many times defined as “Analyzing a product or other output of a process in order to determine how to duplicate the know-how which has been used to create a product or process”. Scope and Goals In the Digital Forensics’ scope, reverse engineering can directly be applied to analyzing unknown and suspicious code in the system, to understand both its goal and inner functioning.
    [Show full text]
  • 245533753-MIT.Pdf
    THE VULNERABILITY OF TECHNICAL SECRETS TO REVERSE ENGINEERING: IMPLICATIONS FOR COMPANY POLICY By Cenkhan Kodak M.S. in Electrical and Computer Systems Engineering (2001) University of Massachusetts at Amherst Submitted to the Systems Design and Management Program In partial fulfillment of the requirements for the degree of Master of Science in Engineering and Management At the MASSACHUSETTS INSTITUTE OF TECHNOLOGY FEBRUARY 2008 © 2008 Cenkhan Kodak. All rights reserved. The author hereby grants to MIT permission to reproduce and Distribute publicly paper and electronic copies of this thesis document in whole or in part in any medium now known or hereafter created Signature of the Author: m- /7 Systems Desigq and Management Program r\ Ja iry 2008 Certified by: 7 Professoi ,ric von Hippel Thesis Supervisor, MIT mSchgQl o•.Ma genfer t Certified by: MASSACHUSES INSTITUTE= Pat Hale OF TEOHiNOLOGY Director, Systems Design and Management Program MAY 0 6 2008 I-I .a,:IARCHIVES -2- THE VULNERABILITY OF TECHNICAL SECRETS TO REVERSE ENGINEERING: IMPLICATIONS FOR COMPANY POLICY By Cenkhan Kodak Submitted to the Systems Design and Engineering Program On February 04 2008, in Partial Fulfillment of the Requirements for the Degree of Master of Science in Engineering and Management Abstract In this thesis I will explore the controversial topic of reverse engineering, illustrating with case examples drawn from the data storage industry. I will explore intellectual property rights issues including, users' fair-use provisions that permit reverse engineering. I will also explore the nature of the practice via several types of analyses including: the costs and benefits of reverse engineering; the practical limitations of reverse engineering; and a layered approach to reverse engineering as it applies to complex systems.
    [Show full text]
  • FPGA-Accelerated Evaluation and Verification of RTL Designs
    FPGA-Accelerated Evaluation and Verification of RTL Designs Donggyu Kim Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2019-57 http://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-57.html May 17, 2019 Copyright © 2019, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. FPGA-Accelerated Evaluation and Verification of RTL Designs by Donggyu Kim A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Krste Asanovi´c,Chair Adjunct Assistant Professor Jonathan Bachrach Professor Rhonda Righter Spring 2019 FPGA-Accelerated Evaluation and Verification of RTL Designs Copyright c 2019 by Donggyu Kim 1 Abstract FPGA-Accelerated Evaluation and Verification of RTL Designs by Donggyu Kim Doctor of Philosophy in Computer Science University of California, Berkeley Professor Krste Asanovi´c,Chair This thesis presents fast and accurate RTL simulation methodologies for performance, power, and energy evaluation as well as verification and debugging using FPGAs in the hardware/software co-design flow. Cycle-level microarchitectural software simulation is the bottleneck of the hard- ware/software co-design cycle due to its slow speed and the difficulty of simulator validation.
    [Show full text]
  • Static Analysis to Improve RTL Verification
    Static Analysis to Improve RTL Verification Akash Agrawal Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Master of Science in Computer Engineering Michael Hsiao, Chair Haibo Zeng A. Lynn Abbott February 16, 2017 Blacksburg, Virginia Keywords: Static Analysis, ATPG, RTL, Reachability Analysis Copyright 2017, Akash Agrawal Static Analysis to Improve RTL Verification Akash Agrawal ABSTRACT Integrated circuits have traveled a long way from being a general purpose microprocessor to an application specific circuit. It has become an integral part of the modern era of technology that we live in. As the applications and their complexities are increasing rapidly every day, so are the sizes of these circuits. With the increase in the design size, the associated testing effort to verify these designs is also increased. The goal of this thesis is to leverage some of the static analysis techniques to reduce the effort of testing and verification at the register transfer level. Studying a design at register transfer level gives exposure to the relational information for the design which is inaccessible at the structural level. In this thesis, we present a way to generate a Data Dependency Graph and a Control Flow Graph out of a register transfer level description of a circuit description. Next, the generated graphs are used to perform relation mining to improve the test generation process in terms of speed, branch coverage and number of test vectors generated. The generated control flow graph gives valuable information about the flow of information through the circuit design.
    [Show full text]
  • Performed the Most Often. in FPGA Design Flow, Functional and Gate
    performed the most often. In FPGA design flow, functional and gate-level timing simulation is typically performed when designers suspect that there might be a mismatch between RTL and functional or gate-level timing simulation results, which can lead to an incorrect design. The mismatch can be caused for several reasons discussed in more detail in Tip #59. Note that the nomenclature of simulation types is not consistent. The same name, for instance “gate-level simulation”, can have slightly different meaning in simulation flows of different FPGA vendors. The situation is even more confusing in ASIC simulation flows, which have many more different simulation types, such as transistor-level, and dynamic simulation. The following figure shows simulation types designers can perform during Xilinx FPGA synthesis and physical implementation process. Figure 1: Simulation types Xilinx FPGA designers can perform simulation after each level of design transformation from the original RTL to the bitstream. The following example is a 12-bit OR gate implemented in Verilog. module sim_types(input [11:0] user_in, output user_out); assign user_out = |user_in; endmodule XST post-synthesis simulation model is implemented using LUT6 and LUT2 primitives, which are parts of Xilinx UNISIMS RTL simulation library. wire out, out1_14; LUT6 #( .INIT ( 64'hFFFFFFFFFFFFFFFE )) out1 ( .I0(user_in[3]), .I1(user_in[2]), .I2(user_in[5]), .I3(user_in[4]), .I4(user_in[7]), .I5(user_in[6]), .O(out)); LUT6 #( .INIT ( 64'hFFFFFFFFFFFFFFFE )) out2 ( .I0(user_in[9]), .I1(user_in[8]), .I2(user_in[11]), .I3(user_in[10]), .I4(user_in[1]), .I5(user_in[0]), .O(out1_14)); LUT2 #( .INIT ( 4'hE )) out3 ( .I0(out), .I1(out1_14), .O(user_out) ); Post-synthesis simulation model can be generated using the following command: $ netgen -w -ofmt verilog -sim sim.ngc post_synthesis.v Post-translate simulation model is implemented using X_LUT6 and X_LUT2 primitives, which are parts of Xilinx SIMPRIMS simulation library.
    [Show full text]
  • Software Security and Reverse Engineering
    Software Security and Reverse Engineering What is reverse engineering? Today the market of software is covered by an incredible number of protected applications, which don't allow you to use all features of programs if you aren't a registered user of these. Reverse engineering is simply the art of removing protection from programs also known as “cracking”. In Some other words cracking is described as follows: - “When you create a program you engineer it, in fact you build the executable from the source-code. The reverse engineering is simply the art of generate a source-code from an executable. Reverse engineering is used to understand how a program does an action, to bypass protection etc. Usually it's not necessary to disassemble all code of the application not only the part of the application that we are interested must be reversed. Reverse engineering used by a cracker to understand the protection scheme and to break it, so it's a very important thing in the whole world of the crack.” In short: - "Reverse Engineering referred to a way to modify a program such that it behaves as the way a reverse engineer wish." “Cracking is a method of making a software program function other than it was Originally intended by means of investigating the code, and, if necessary, patching It.” A Little bit of history Reveres egg. Most probably start with the DOS based computer games. The aim is that a player has full life and armed in the final stage of the game. So what a reverse egg.
    [Show full text]
  • Soft Robotic Hand Prosthesis Using Reverse Engineering and Fast Prototyping
    Proceedings of the 1 st Iberic Conference on Theoretical and Experimental Mechanics and Materials / 11 th National Congress on Experimental Mechanics. Porto/Portugal 4-7 November 2018. Ed. J.F. Silva Gomes. INEGI/FEUP (2018); ISBN: 978-989-20-8771-9; pp. 953-966. PAPER REF: 7452 SOFT ROBOTIC HAND PROSTHESIS USING REVERSE ENGINEERING AND FAST PROTOTYPING Hugo D’Almeida, Tiago Charters, Paulo Almeida, Mário J.G.C. Mendes (*) Instituto Superior de Engenharia de Lisboa (ISEL), Instituto Politécnico de Lisboa, Lisboa, Portugal (*) Email: [email protected] ABSTRACT The present work aimed to develop a soft robotic prosthesis of the human hand using reverse engineering and fast prototyping. This project arises in response to some limitations of the current conventional prostheses, namely aesthetic, mechanical and cost, that fail to fulfil the needs of its users, for example with soft objects. The hand prosthesis design involved the acquisition and processing of a medical image of the user's hand, followed by a modelling process which proved to be highly complex, and finally the obtainment of a real model (by 3D printing) of the prosthesis. The results obtained proved to be satisfactory in the approximation of the hand morphology, low cost and the designed mechanical properties. However, due to some technological limitations (the used 3D printers), and more specifically in the physical conception of the model, its functionality is yet to be proved with the pneumatic control. Keywords: Soft robotics, reverse engineering, fast prototyping, hand prosthesis. INTRODUCTION The human hand can be considered the most used tool by the man in the execution of the daily tasks, and its loss leads to physical and psychological damages.
    [Show full text]
  • Reverse Engineering Is Reverse Forward Engineering)
    RE- ENGINEERING 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" . Less formally, reengineering is the modification of a software system that takes place after it has been reverse engineered, generally to add new functionality, or to correct errors. This entire process is often erroneously referred to as reverse engineering; however, it is more accurate to say that reverse engineering is the initial examination of the system, and reengineering is the subsequent modification. Re-engineering is mostly used in the context where a legacy system is involved. Software systems are evolving on high rate because there more research to make the better so therefore software system in most cases, legacy software needs to operate on a new computing platform. 'Re-engineering' is a set of activities that are carried out to re-structure a legacy system to a new system with better functionalities and conform to the hardware and software quality constraint. FORWARD ENGINEERING Forward engineering is the opposite of reverse engineering. In forward engineering, one takes a set of primitives of interest, builds them into a working system, and then observes what the system can and cannot do. Forward engineering is the foundation of synthetic psychology (Braitenberg, 1984; Dawson, 2004; Pfeifer & Scheier, 1999). Braitenberg has argued that forward engineering is likely to produce simpler theories than reverse engineering because the latter tends to attribute behavioural complexities to the internal mechanisms of the agent. Braitenberg calls this the law of uphill analysis and downhill synthesis.
    [Show full text]
  • Reverse Engineering a Legacy Software in a Complex System: a Systems Engineering Approach
    Reverse engineering a legacy software in a complex system: A systems engineering approach Maximiliano Moraga Yang-Yang Zhao University College of Southeast Norway University College of Southeast Norway Kongsberg, Norway Kongsberg, Norway +47 94195982 +47 31009699 [email protected] [email protected] Copyright © 2018 by Maximiliano Moraga and Yang-Yang Zhao. Published and used by INCOSE with permission. Abstract. In a complex system, a legacy software as a component is determined by various factors beyond its own capability. Lack of knowledge that shaped software, which is often the case of a legacy software, can prohibit appropriate maintenance and development to comply with the system needs. To reverse engineering legacy software for a fit with the overall system of interest is a daunting task. Existing techniques of reverse engineering are mostly from a purely technical point of view and for the single discipline of software engineering. Thus, this paper aims for an approach to properly reverse engineer the reasoning behind the legacy software developments in a complex system. By jointly apply the CAFCR model and the reverse engineering, a roadmap is created to guide incremental developments of legacy software in a complex system, which benefits both the maintenance of existing implementation and realization of new functionalities for improved system performance. Introduction Software development has the growing importance for many business successes. One critical issue for an existing business is the maintenance and continuous development of its software. With increasing competition, existing businesses have a tremendous pressure on the fast pace upgrading which left no time for the software to be re-created and re-implemented.
    [Show full text]