Reverse Engineering Dept. of I&CT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering.

Slides:



Advertisements
Similar presentations
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

1 Postdelivery Maintenance Xiaojun Qi. 2 Why Postdelivery Maintenance Is Necessary Corrective maintenance: To correct residual faults –Analysis, design,
Software Evolution Managing the processes of software system change
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Introduction to Systems Analysis and Design
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
Test Design Techniques
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
Software Construction and Evolution - CSSE 375 Reverse Engineering and Reengineering Approaches Shawn & Steve In long-term software developments, the “elephant.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm.
Institute for Applied Computer Science in Mechanical Engineering (RPK) at the University of Karlsruhe (Germany) RPK Christine Bruch Institute for Applied.
CSCE 548 Secure Software Development Risk-Based Security Testing.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Introduction to SDLC: System Development Life Cycle Dr. Dania Bilal IS 582 Spring 2009.
Software Construction and Evolution - CSSE 375 Reverse Engineering Tools and Techniques Shawn & Steve Left – Reengineering from the competition can be.
Test plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Introduction Telerik Software Academy Software Quality Assurance.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
ITEC224 Database Programming
BTEC Unit 06 – Lesson 08 Principals of Software Design Mr C Johnston ICT Teacher
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
University of Illinois at Chicago ECE 396  Senior Design I 4  1 ECE 396 – Senior Design I Fall 2006 Semester PowerPoint presentation #4.
Reverse engineering is the process of discovering the technological principles of a human made device, object or system through analysis of its structure,
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
Information & Communication Technology (ICT) Books: 1. Management Information Systems James A. O’Brien & George M. Marakas 2. Introduction Of Information.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Software Design Process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CSE 303 – Software Design and Architecture
Reverse Engineering. Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
“Software reverse engineering involves taking an existing system for which source code or proper documentation is not available and attempting to recover.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Friday, 23 August 2013 Session Work out Presented By: Abhijit Pal.
Sebastián Álvarez Henao.. It refers to all physical parts of a computer system; its components are: electrical, electronic, electromechanical and mechanical.
1 Software Development Life cycle (SDLC). Phases of SDLC 2 Requirement Analysis (Defining Requirement) Designing (Design) Coding (Implementation) Software.
Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
CSCE 548 Secure Software Development Risk-Based Security Testing
Security SIG in MTS 05th November 2013 DEG/MTS RISK-BASED SECURITY TESTING Fraunhofer FOKUS.
Introduction to Software Evolution and Maintenance
The Systems Engineering Context
Software Maintenance.
Quality Management Perfectqaservices.
Chapter 18 MobileApp Design
Component Based Software Engineering
Software Maintenance
STEMCenter for Teaching & Learning™ Engineering byDesign™
STEMCenter for Teaching & Learning™ Engineering byDesign™
Reverse Engineering.
Software Maintenance Main issues: why maintenance is such an issue
STEMCenter for Teaching & Learning™ Engineering byDesign™
Software Verification and Validation
Software Verification and Validation
STEMCenter for Teaching & Learning™ Engineering byDesign™
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Re- engineeniering.
Software Verification and Validation
Introduction Software maintenance:
Software Re-engineering and Reverse Engineering
Presentation transcript:

Reverse Engineering Dept. of I&CT, MIT, Manipal

Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering. Reverse engineering process. Approaches for reverse engineering. Other areas of application. Legal issues. Dept. of I&CT, MIT, Manipal Reverse Engineering

Introduction What is Reverse Engineering ? The process of analyzing a system to (i)identify the system's components and their inter-relationships and (ii) to create representation of the system in another form. Also called as “going backwards through development cycle.” Reverse Engineering Dept. of I&CT, MIT, Manipal

Objectives 1.Re-documentation A process to derive the design or speciation of a system from its source code. 2.Design Recovery Design recovery aims at recreating design abstractions from the source code, existing documentation, experts' knowledge and any other source of information. Reverse Engineering Dept. of I&CT, MIT, Manipal

Reverse v/s forward engineering Reverse Engineering Dept. of I&CT, MIT, Manipal Requirements Analysis Design Implementation Forward engineering Reverse engineering

Reverse Engineering Process 1.Information Extraction 2.Abstraction Dept. of I&CT, MIT, Manipal Reverse Engineering

Use Of Reverse Engineering Transforming obsolete products into useful ones by adapting them to new systems and platforms. Some features of the system needs to be refined out. It can be use if there is no adequate documentation of the original design. Investigating and correcting errors and limitations in existing programs. Studying the design principles of a product as part of an education in engineering. Understanding how a product works. Reverse Engineering Dept. of I&CT, MIT, Manipal

Approaches To Reverse Engineering White Box Analysis Black Box Analysis Gray Box Analysis Dept. of I&CT, MIT, Manipal Reverse Engineering

White Box Analysis Involves analysis of source code. For e.g. decompiling a binary code to get the source code is a kind of white box analysis. Effective for finding programming and implementation errors in software. Reverse Engineering Dept. of I&CT, MIT, Manipal

Black Box Analysis Black box analysis refers to analyzing a running program by probing it with various inputs. This can be used to test for the security issues of the system. Reverse Engineering Dept. of I&CT, MIT, Manipal

Gray Box Analysis Gray box analysis combines white box techniques with black box input testing. A good example of a simple gray box analysis is running a target program within a debugger and then supplying particular sets of inputs to the program. Reverse Engineering Dept. of I&CT, MIT, Manipal

Code Reverse Engineering Reverse engineering focuses at reverse engineering at code level. For reverse engineering code is a reliable source of information. Limitation : the code does not contain all the information that is needed. Reverse Engineering Dept. of I&CT, MIT, Manipal

Data Reverse Engineering Data reverse engineering tackles the question of what information is stored and how this information can be used. Data reverse engineering techniques can also be used to assess the overall quality of software systems. Consists of 2 main activities : 1.Data Analysis 2.Conceptual Abstraction Reverse Engineering Dept. of I&CT, MIT, Manipal

Data Analysis The analysis activity aims to recover an up-to-date logical data model that is structurally complete and semantically annotated. Computer-aided reverse engineering tools can be used for data analysis. Reverse Engineering Dept. of I&CT, MIT, Manipal

Conceptual Abstraction Conceptual abstraction aims to map the logical data model derived from data analysis to an equivalent conceptual design. ER-Diagrams or Object Oriented data models can be used to represent the design. Several tools support data abstraction but has following limitations : 1.Iteration 2.Bidirectional Mapping Process 3.Research Direction Reverse Engineering Dept. of I&CT, MIT, Manipal

Reverse engineering can also be used for Military applications Mechanical Devices Reverse Engineering Dept. of I&CT, MIT, Manipal

Legal Issues Reverse engineering has been held a legitimate form of discovery. The law regarding reverse engineering in the computer software and hardware context is less clear due to : 1.Anti reverse engineering licensing provisions. 2.Prohibition on the circumvention of technologies embedded within protection measures. Reverse Engineering Dept. of I&CT, MIT, Manipal

References [1] P. Aiken. Data Reverse Engineering: Slaying the Legacy Dragon. McGraw- Hill. [2] [3] http :// [4]