SlideShare a Scribd company logo
Reverse Engineering
Computer Science
Introduction
To
Reverse Engineering
CONTENTS
● What is Reverse Engineering (RE)?
● Why do we need Reverse Engineering?
● Scope and Tasks of Reverse Engineering
● Different Approaches
● RE tools
● Conclusions
WHAT WILL HAPPEN ?
●You have an unexpected case:
●You finished one course project using Java
●Your program runs OK
●But, by accident, you delete the java file
WHAT WILL HAPPEN ?
●You have an unexpected case:
●You finished one course project using Java
●Your program runs OK
●But, by accident, you delete the java file
●Solution is “Reverse Engineering”
WHAT IS REVERSE ENGINEERING?
●RE encompasses any activity that is done to
determine how a product works, to learn the
ideas and technology that were used in
developing that product.
●RE can be done at many levels
●RE generally belongs to Software Maintenance
FORWARD ENGINEERING
AND
REVERSE ENGINEERING
By, Puja kumari
WHAT IS FORWARD ENGINEERING ?
Waterfall Model of
software
development
Requirement
Analysis
Design
Implementation
Testing and
Maintenance
FORWARD ENGINEERING
Forward
Engineering
Requirements
Design
Source Code
Testing &
Maintenance
FORWARD ENGINEERING VS
REVERSE ENGINEERING ?
Forward Engineering Reverse Engineering
Requirements
Design
Source Code
Testing &
Maintenance
CONCEPT OF ABSTRACTION SYSTEM
Abstraction
System
Old system New System
Forward Engineering
Re-Implementation
Reverse Engineering
Abstraction
WHY DO WE NEED RE ?
●Recovery of lost information
●providing proper system documentation
●Assisting with maintenance
●identification of side effects and anomalies
●Migration to another hw/sw platform
●Facilitating software reuse
Benefits, Difficulties
& Scope of
Reverse Engineering
THE EARLY DAYS OF RE
●Law of Software Revolution (Lehman, 1980)
●Fundamental strategies for program
comprehension (Brooks, 1983)
●Taxonomy of Reverse Engineering (Chikofsky
&Cross, 1990)
●WCRE (Working Conference on R.E., 1990)
BENEFITS OF REVERSE ENGINEERING
●Benefits
●maintenance cost savings
●quality improvements
●competitive advantages
●software reuse facilitation
DIFFICULTIES OF REVERSE ENGINEERING
●Gap between problem
/solution domain
●Gap between concrete
and abstract
●Gap between coherency/disintegration
●Gap between hierarchical/associational
SCOPE AND TASK OF REVERSE
ENGINEERING
●program understanding
Problem/Applica
tion
domain
Program/Implem
en.
domain
Mapping
SCOPE AND TASK OF REVERSE
ENGINEERING
●Redocumentation and/or document
generation
●Recovery of design approach and design
details at any level of abstraction
●Identifying reusable components and
components that need restructuring
●Recovering business rules
●Understanding high-level system
description.
Discovery of Abstraction &
Different Approaches
of Reverse Engineering
By, Sweta Sangam
DISCOVERY OF ABSTRACTION
●Discovery of abstraction in large system
●Maintenance purpose
●Evolution purpose
●Re-Engineering purpose
LEVELS OF ABSTRACTIONS
●Application
●Application concepts, business rule, policies
●Function
●Logical and functional specification, non-functional
requirement
●Structure
●Data and control flow, dependency graphs
●Structure and subsystem charts
●Architectures
●Implementation
●Symbol tables, source text
DIFFERENT APPROACHES
●Restructuring
●Transformation from one representation to another
at the same level,
Requirements
Design
Source code
Behavior
DIFFERENT APPROACHES
●Reverse Engineering
●Design Recovery
●reproduce all the info for understanding the system
●Re-documentation
●provide different views of the system
●Re-Engineering
●first phase --understanding the system
●second phase--forward engineering
DIFFERENT APPROACHES
Abstraction
System
Old system New System
Forward Engineering
Re-Implementation
Reverse Engineering
Abstraction
Practical Implementation
& Tools of
Reverse Engineering
By, Debdeep Kundu
REVERSE ENGINEERING TOOLS
●Analysis Tools
●Browsers
●Object Server
●Task Oriented Tools
EXAMPLE--JAVA DECOMPILER
●How to recover bytecode from .class file
under Unix/Win with JDK?
% javap -c <filename>
% javap -help (to see the options)
●Java Decompilers
●”ClassCracker” http://www.pcug.org.au/~mayon/
●“DeCafe Pro" from DeCafe, France at
http://decafe.hypermart.net/index.htm
●“SourceAgain" from Ahpah corp at http://www.ahpah.com
EXAMPLE--JAVA DECOMPILER
●ClassCracker 2 Interface
EXAMPLE--JAVA DECOMPILER
●Components of ClassCracker 2
● Java decompiler
●retrieves Java source code from Java class files
● Java disassembler
●produces Java Assembly Code
●A Java class file viewer
●displays Java class file structures.
EXAMPLE--JAVA DECOMPILER
●Features of ClassCracker 2
●User visual interface.
●Can decompile class files within zip or jar files.
●Conversion mode (JAVA, JASM or JDUMP) is
selectable
● A Batch Mode allows multiple class files to be
decompiled simultaneously
●more…...
EXAMPLE--JAVA DECOMPILER
●ClassCracker 2 System Requirements
●All platform (Window/ Linus /Unix)
●JDK /JRE
●Do not believe it?
●From myClass_origin.class ==>myClass.java
●% javac myClass.java (==>myClass.class)
●% diff myClass.class myClass_origin.class
EXAMPLE--JAVA DECOMPILER
●ClassCracker 2.0--want to try it?
●Free download at
http://www.pcug.org.au/~mayon/classcracker/cc
getdemo.html
●Only first three methods are decoded.
●Bridge 1.0---Free
●http://www.geocities.com/SiliconValley/Bridge
/8617/jad.html
CONCLUSIONS
●Reverse Engineering is a new research area
among software maintenance
●RE includes activities of understanding the
system and recovery info from system
●Program understanding is the most important
subset of Reverse Engineering
●Discovery of abstraction is key issue
REFERENCES
●http://www.wiley.com/WileyCDA/WileyTitle/
productCd-0764574817.html
●http://www.google.com
●- http://jode.sourceforge.net
THANK YOU
QUESTIONS ?

More Related Content

Similar to reverse_ee.pptx

Retrofitting a legacy SPA to use a functional architecture
Retrofitting a legacy SPA to use a functional architectureRetrofitting a legacy SPA to use a functional architecture
Retrofitting a legacy SPA to use a functional architecture
Manuel Rivero
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009
Srini Penchikala
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009
guest2b8cd
 
Se introduction lec 1
Se  introduction lec 1Se  introduction lec 1
Se introduction lec 1
Amir Shahzad
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
Brett Child
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software Engineering
Muhammad Shehata
 
Introduction to computer programming.pdf
Introduction to computer programming.pdfIntroduction to computer programming.pdf
Introduction to computer programming.pdf
HasankaNayanjith
 
The when & why of evolution of performance testing to performance engineering...
The when & why of evolution of performance testing to performance engineering...The when & why of evolution of performance testing to performance engineering...
The when & why of evolution of performance testing to performance engineering...
Technical Agility institute
 
A presentation on forward engineering
A presentation on forward engineeringA presentation on forward engineering
A presentation on forward engineering
GTU
 
Bai giang-se-16jan14
Bai giang-se-16jan14Bai giang-se-16jan14
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
SanskarBhushankar
 
Process model rup
Process model rupProcess model rup
Process model rup
Aryan Ajmer
 
Lecture #02 ECS-511.pptx
Lecture #02 ECS-511.pptxLecture #02 ECS-511.pptx
Lecture #02 ECS-511.pptx
AbuBakkarShayan
 
OutSystems Tips and Tricks
OutSystems Tips and TricksOutSystems Tips and Tricks
OutSystems Tips and Tricks
OutSystems
 
Se 20150507
Se 20150507Se 20150507
Se 20150507
葵慶 李
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
SADEED AMEEN
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
Jayanthi Kannan MK
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT Academy
Mohamed Shahpoup
 
Bai giang-se-20jan14
Bai giang-se-20jan14Bai giang-se-20jan14
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
Arslan Anwar
 

Similar to reverse_ee.pptx (20)

Retrofitting a legacy SPA to use a functional architecture
Retrofitting a legacy SPA to use a functional architectureRetrofitting a legacy SPA to use a functional architecture
Retrofitting a legacy SPA to use a functional architecture
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009
 
Se introduction lec 1
Se  introduction lec 1Se  introduction lec 1
Se introduction lec 1
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software Engineering
 
Introduction to computer programming.pdf
Introduction to computer programming.pdfIntroduction to computer programming.pdf
Introduction to computer programming.pdf
 
The when & why of evolution of performance testing to performance engineering...
The when & why of evolution of performance testing to performance engineering...The when & why of evolution of performance testing to performance engineering...
The when & why of evolution of performance testing to performance engineering...
 
A presentation on forward engineering
A presentation on forward engineeringA presentation on forward engineering
A presentation on forward engineering
 
Bai giang-se-16jan14
Bai giang-se-16jan14Bai giang-se-16jan14
Bai giang-se-16jan14
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Process model rup
Process model rupProcess model rup
Process model rup
 
Lecture #02 ECS-511.pptx
Lecture #02 ECS-511.pptxLecture #02 ECS-511.pptx
Lecture #02 ECS-511.pptx
 
OutSystems Tips and Tricks
OutSystems Tips and TricksOutSystems Tips and Tricks
OutSystems Tips and Tricks
 
Se 20150507
Se 20150507Se 20150507
Se 20150507
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT Academy
 
Bai giang-se-20jan14
Bai giang-se-20jan14Bai giang-se-20jan14
Bai giang-se-20jan14
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 

Recently uploaded

International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
IJNSA Journal
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
Low power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniquesLow power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniques
nooriasukmaningtyas
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
digital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdfdigital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdf
drwaing
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 
Exception Handling notes in java exception
Exception Handling notes in java exceptionException Handling notes in java exception
Exception Handling notes in java exception
Ratnakar Mikkili
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
yokeleetan1
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
gerogepatton
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
PauloRodrigues104553
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
Madhumitha Jayaram
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
mahammadsalmanmech
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 

Recently uploaded (20)

International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
Low power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniquesLow power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniques
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
digital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdfdigital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdf
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 
Exception Handling notes in java exception
Exception Handling notes in java exceptionException Handling notes in java exception
Exception Handling notes in java exception
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 

reverse_ee.pptx