SlideShare a Scribd company logo
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
1
Software Reverse Engineering In Security Context
Authored by:
Presented by:
Affiliation:
Venue: ARYA COLLEGE OF ENGG. & I.T. , Jaipur
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Introduction
• Software Reverse Engineering is a research process aimed to discover the
functioning principles (mostly the hidden ones) of a software over a specific
hardware or on the targeted platform (Windows, *nix, etc.) .
• Software reversing is used in maintenance, Malware analysis, vulnerability and
patch analysis, exploit development, application
compatibility/interoperability research, or creating a new software with same
functioning principles without copying the original one.
• Software Reverse Engineering can provide a differentiating business approach,
which saves almost all types of resources and rest of project time opens much
broader functional opportunities for development teams.
• In the United States, India and many other countries even if an artifact or process is
protected by trade secrets, reverse-engineering the artifact or process is often lawful
as long as it has been legitimately obtained.
2
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Objective(s)
• Literature Review
• General Architecture of a Microprocessor
• Registers
• Memory Management
• Prologue and Epilogue in Assembly Language (IA-32)
• Tools
• Static Analysis
• Dynamic Analysis
• Applications of Software Reverse Engineering
• Legal
• Illegal
• Example
• Security Mitigations
3
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
General Architecture of a Microprocessor
Registers : Microprocessor
use these general purpose and
special registers for temporary
holding the data/values
loaded from memory for
operation execution.
4
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
General Architecture of a Microprocessor
Memory Management :
Microprocessor uses memory
segments (Stack, Heap,
program image) during
program's execution which
may differ according to the
host systems like windows,
where process environment
block (PEB) is additionally
used to keep data structures
applies to whole process.
5
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Prologue and Epilogue in Assembly Language (example)
C/C++
// code example in C language.
int square(int num)
{
return num * num;
}
Assembly Language
square(int):
push rbp ; saving RBP to stack (prologue)
mov rbp, rsp ; setting new RBP (prologue)
mov DWORD PTR [rbp-4], edi ; args (num)
mov eax, DWORD PTR [rbp-4]
imul eax, DWORD PTR [rbp-4]
pop rbp ; loads RBP original value (epilogue )
ret ; returns to previous location (epilogue)
6
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Tools (Static Analysis)
Dissembler is a computer program that translates machine language into assembly
language—the inverse operation to that of an assembler.
Examples -
• Interactive Disassembler (IDA)
• OllyDbg is a 32-bit assembler level analyzing debugger
• Radare2
• Objdump
7
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Tools (Dynamic Analysis)
Debuggers offers more sophisticated functions compared to disassemblers such as:
• Running a program step by step (single-stepping).
• Stopping (breaking) (pausing the program to examine the current state)by means of a
breakpoint.
• Tracking the values of variables(registers).
• Some debuggers have the ability to modify program state while it is running.
• It may also be possible to continue execution at a different location in the program to bypass
a crash or logical error.
• The same functionality which makes a debugger useful for eliminating bugs allows it to be
used as a software cracking tool to evade copy protection, digital rights management, and
other software protection features.
8
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Applications (legal)
• Functioning principle Advancements
• Application Analysis
• Malware Analysis
• Interoperability Analysis
• Vulnerability Analysis
• Exploit Development for research or testing purpose (after public disclosure of
vulnerability)
9
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Applications (illegal)
• Patching software to defeat copy protection
• Key-Generator development
• Advanced Malwares, viruses, trojan horses or any other type of malicious
applications.
10
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Example (exploit development)
• Verify bug (fuzzing)
• Calculate offset for Instruction pointer register (EIP)
• Search for reliable jmp/call instruction pointing to our input data
• Check for bad characters ( 0x00, …...... , 0xFF )
• Write/Generate shellcode (encode if required)
• Add few NOP instructions (0x90) between EIP offset and shellcode, provides extra
space in memory for shellcode decoding without truncating itself.
• Deploy and test exploit
11
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Security Mitigations
Security mitigations can be added during SDLC for securing applications, off course
these can be bypassed but they minimizes the risks of remote code execution (RCE) in
the developed application.
Examples -
• Address space layout randomization (ASLR).
• Data execution prevention (DEP).
• Canaries (canary words) are known values that are placed between a buffer and
control data on the stack to monitor buffer overflows.
12
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
Conclusion
• Reverse engineering is more like offense for better defense.
• Analysis of applications helps us to understand working of mitigation techniques.
• The accuracy and amount of information that can be deduced varies, but it is
certainly possible to obtain functioning principles concepts.
• Reverse-engineering is used for many purposes, as a learning tool, as a way to
make new, compatible products, cheaper than what's currently on the market.
• software interoperability or to bridge data between different operating systems or
databases.
• Analysis of different malicious applications (malware, ransomwares, etc.).
• Tracing malicious applications back to its source.
13
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
References
• Books:
• Reverse Engineering for Beginners by Dennis Yurichev
• Reversing: Secrets of Reverse Engineering by Eldad Eilam
• Sites:
• Wikipedia
• Corelan Team
14
National Conference on Recent Innovation in Software and Computer (NCTISC-2018)
March 10-11, 2018, Jaipur
15
Queries ? ? ? ?

More Related Content

What's hot

Estimation techniques and risk management
Estimation techniques and risk managementEstimation techniques and risk management
Estimation techniques and risk management
Purushottam Basnet
 
A presentation on forward engineering
A presentation on forward engineeringA presentation on forward engineering
A presentation on forward engineering
GTU
 
Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineeringYuffie Valen
 
Looking Forwards to Going Backwards
Looking Forwards to Going BackwardsLooking Forwards to Going Backwards
Looking Forwards to Going Backwards
Jonathan Francis Roscoe
 
Software Estimation Techniques
Software Estimation TechniquesSoftware Estimation Techniques
Software Estimation Techniques
kamal
 
Software Project Managment
Software Project ManagmentSoftware Project Managment
Software Project Managment
Saqib Naveed
 
Resume of Zikai Cai
Resume of Zikai CaiResume of Zikai Cai
Resume of Zikai Cai
ZikaiCai
 
Space Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolledSpace Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign
 
Function Point Analysis
Function Point AnalysisFunction Point Analysis
Function Point Analysis
Araf Karsh Hamid
 
Automated server-side model for recognition of security vulnerabilities in sc...
Automated server-side model for recognition of security vulnerabilities in sc...Automated server-side model for recognition of security vulnerabilities in sc...
Automated server-side model for recognition of security vulnerabilities in sc...
IJECEIAES
 
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTUREA LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
ijseajournal
 
Formal Method for Avionics Software Verification
 Formal Method for Avionics Software Verification Formal Method for Avionics Software Verification
Formal Method for Avionics Software Verification
AdaCore
 
Line Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPUR
Line Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPURLine Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPUR
Line Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPUR
NA000000
 
NeerajSharma_EmbeddedSoftwareDeveloper
NeerajSharma_EmbeddedSoftwareDeveloperNeerajSharma_EmbeddedSoftwareDeveloper
NeerajSharma_EmbeddedSoftwareDeveloperNeeraj sharma
 
Software Estimation
Software EstimationSoftware Estimation
Software Estimation
Dinesh Singh
 
Case tools
Case toolsCase tools
Software Estimation
Software EstimationSoftware Estimation
Software Estimation
shashankjain04
 
Software engineering
Software engineeringSoftware engineering
Software engineeringFahe Em
 

What's hot (20)

Estimation techniques and risk management
Estimation techniques and risk managementEstimation techniques and risk management
Estimation techniques and risk management
 
A presentation on forward engineering
A presentation on forward engineeringA presentation on forward engineering
A presentation on forward engineering
 
Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineering
 
Looking Forwards to Going Backwards
Looking Forwards to Going BackwardsLooking Forwards to Going Backwards
Looking Forwards to Going Backwards
 
Software Estimation Techniques
Software Estimation TechniquesSoftware Estimation Techniques
Software Estimation Techniques
 
Software Sizing
Software SizingSoftware Sizing
Software Sizing
 
Software Project Managment
Software Project ManagmentSoftware Project Managment
Software Project Managment
 
Resume of Zikai Cai
Resume of Zikai CaiResume of Zikai Cai
Resume of Zikai Cai
 
Space Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolledSpace Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolled
 
Function Point Analysis
Function Point AnalysisFunction Point Analysis
Function Point Analysis
 
Automated server-side model for recognition of security vulnerabilities in sc...
Automated server-side model for recognition of security vulnerabilities in sc...Automated server-side model for recognition of security vulnerabilities in sc...
Automated server-side model for recognition of security vulnerabilities in sc...
 
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTUREA LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
 
FinalPoster-Draft_v4
FinalPoster-Draft_v4FinalPoster-Draft_v4
FinalPoster-Draft_v4
 
Formal Method for Avionics Software Verification
 Formal Method for Avionics Software Verification Formal Method for Avionics Software Verification
Formal Method for Avionics Software Verification
 
Line Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPUR
Line Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPURLine Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPUR
Line Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPUR
 
NeerajSharma_EmbeddedSoftwareDeveloper
NeerajSharma_EmbeddedSoftwareDeveloperNeerajSharma_EmbeddedSoftwareDeveloper
NeerajSharma_EmbeddedSoftwareDeveloper
 
Software Estimation
Software EstimationSoftware Estimation
Software Estimation
 
Case tools
Case toolsCase tools
Case tools
 
Software Estimation
Software EstimationSoftware Estimation
Software Estimation
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 

Similar to Software Reverse Engineering in a Security Context (ncrisc 2018)

D017372538
D017372538D017372538
D017372538
IOSR Journals
 
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
iosrjce
 
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
AppDynamics
 
The differing ways to monitor and instrument
The differing ways to monitor and instrumentThe differing ways to monitor and instrument
The differing ways to monitor and instrument
Jonah Kowall
 
Effective Information Flow Control as a Service: EIFCaaS
Effective Information Flow Control as a Service: EIFCaaSEffective Information Flow Control as a Service: EIFCaaS
Effective Information Flow Control as a Service: EIFCaaS
IRJET Journal
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
Teodoro Cipresso
 
A035401010
A035401010A035401010
A035401010
inventionjournals
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
IJERD Editor
 
FEATURE EXTRACTION AND FEATURE SELECTION: REDUCING DATA COMPLEXITY WITH APACH...
FEATURE EXTRACTION AND FEATURE SELECTION: REDUCING DATA COMPLEXITY WITH APACH...FEATURE EXTRACTION AND FEATURE SELECTION: REDUCING DATA COMPLEXITY WITH APACH...
FEATURE EXTRACTION AND FEATURE SELECTION: REDUCING DATA COMPLEXITY WITH APACH...
IJNSA Journal
 
ICIC 2013 New Product Introductions CEPT
ICIC 2013 New Product Introductions CEPTICIC 2013 New Product Introductions CEPT
ICIC 2013 New Product Introductions CEPTDr. Haxel Consult
 
App Engine Application for Detecting Similar Files in Google Drive
App Engine Application for Detecting Similar Files in Google DriveApp Engine Application for Detecting Similar Files in Google Drive
App Engine Application for Detecting Similar Files in Google Drive
IRJET Journal
 
Analysis of Network Traffic and Security through Log Aggregation
Analysis of Network Traffic and Security through Log AggregationAnalysis of Network Traffic and Security through Log Aggregation
Analysis of Network Traffic and Security through Log Aggregation
IJCSIS Research Publications
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_AppajiAppaji K
 
Internship msc cs
Internship msc csInternship msc cs
Internship msc cs
Pooja Bhojwani
 
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Mobodexter
 
Agile Development in Aerospace and Defense
Agile Development in Aerospace and DefenseAgile Development in Aerospace and Defense
Agile Development in Aerospace and Defense
Jim Nickel
 
Data Security String Manipulation by Random Value in Hypertext Preprocessor
Data Security String Manipulation by Random Value in Hypertext PreprocessorData Security String Manipulation by Random Value in Hypertext Preprocessor
Data Security String Manipulation by Random Value in Hypertext Preprocessor
ijtsrd
 
Privacy Preserving Mining in Code Profiling Data
Privacy Preserving Mining in Code Profiling DataPrivacy Preserving Mining in Code Profiling Data
Privacy Preserving Mining in Code Profiling Data
Dr. Amarjeet Singh
 

Similar to Software Reverse Engineering in a Security Context (ncrisc 2018) (20)

D017372538
D017372538D017372538
D017372538
 
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
 
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
 
The differing ways to monitor and instrument
The differing ways to monitor and instrumentThe differing ways to monitor and instrument
The differing ways to monitor and instrument
 
Effective Information Flow Control as a Service: EIFCaaS
Effective Information Flow Control as a Service: EIFCaaSEffective Information Flow Control as a Service: EIFCaaS
Effective Information Flow Control as a Service: EIFCaaS
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
 
A035401010
A035401010A035401010
A035401010
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Resume (1)
Resume (1)Resume (1)
Resume (1)
 
Resume (1)
Resume (1)Resume (1)
Resume (1)
 
FEATURE EXTRACTION AND FEATURE SELECTION: REDUCING DATA COMPLEXITY WITH APACH...
FEATURE EXTRACTION AND FEATURE SELECTION: REDUCING DATA COMPLEXITY WITH APACH...FEATURE EXTRACTION AND FEATURE SELECTION: REDUCING DATA COMPLEXITY WITH APACH...
FEATURE EXTRACTION AND FEATURE SELECTION: REDUCING DATA COMPLEXITY WITH APACH...
 
ICIC 2013 New Product Introductions CEPT
ICIC 2013 New Product Introductions CEPTICIC 2013 New Product Introductions CEPT
ICIC 2013 New Product Introductions CEPT
 
App Engine Application for Detecting Similar Files in Google Drive
App Engine Application for Detecting Similar Files in Google DriveApp Engine Application for Detecting Similar Files in Google Drive
App Engine Application for Detecting Similar Files in Google Drive
 
Analysis of Network Traffic and Security through Log Aggregation
Analysis of Network Traffic and Security through Log AggregationAnalysis of Network Traffic and Security through Log Aggregation
Analysis of Network Traffic and Security through Log Aggregation
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_Appaji
 
Internship msc cs
Internship msc csInternship msc cs
Internship msc cs
 
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
 
Agile Development in Aerospace and Defense
Agile Development in Aerospace and DefenseAgile Development in Aerospace and Defense
Agile Development in Aerospace and Defense
 
Data Security String Manipulation by Random Value in Hypertext Preprocessor
Data Security String Manipulation by Random Value in Hypertext PreprocessorData Security String Manipulation by Random Value in Hypertext Preprocessor
Data Security String Manipulation by Random Value in Hypertext Preprocessor
 
Privacy Preserving Mining in Code Profiling Data
Privacy Preserving Mining in Code Profiling DataPrivacy Preserving Mining in Code Profiling Data
Privacy Preserving Mining in Code Profiling Data
 

Recently uploaded

Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Atul Kumar Singh
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
CarlosHernanMontoyab2
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 

Recently uploaded (20)

Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 

Software Reverse Engineering in a Security Context (ncrisc 2018)

  • 1. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur 1 Software Reverse Engineering In Security Context Authored by: Presented by: Affiliation: Venue: ARYA COLLEGE OF ENGG. & I.T. , Jaipur
  • 2. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Introduction • Software Reverse Engineering is a research process aimed to discover the functioning principles (mostly the hidden ones) of a software over a specific hardware or on the targeted platform (Windows, *nix, etc.) . • Software reversing is used in maintenance, Malware analysis, vulnerability and patch analysis, exploit development, application compatibility/interoperability research, or creating a new software with same functioning principles without copying the original one. • Software Reverse Engineering can provide a differentiating business approach, which saves almost all types of resources and rest of project time opens much broader functional opportunities for development teams. • In the United States, India and many other countries even if an artifact or process is protected by trade secrets, reverse-engineering the artifact or process is often lawful as long as it has been legitimately obtained. 2
  • 3. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Objective(s) • Literature Review • General Architecture of a Microprocessor • Registers • Memory Management • Prologue and Epilogue in Assembly Language (IA-32) • Tools • Static Analysis • Dynamic Analysis • Applications of Software Reverse Engineering • Legal • Illegal • Example • Security Mitigations 3
  • 4. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur General Architecture of a Microprocessor Registers : Microprocessor use these general purpose and special registers for temporary holding the data/values loaded from memory for operation execution. 4
  • 5. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur General Architecture of a Microprocessor Memory Management : Microprocessor uses memory segments (Stack, Heap, program image) during program's execution which may differ according to the host systems like windows, where process environment block (PEB) is additionally used to keep data structures applies to whole process. 5
  • 6. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Prologue and Epilogue in Assembly Language (example) C/C++ // code example in C language. int square(int num) { return num * num; } Assembly Language square(int): push rbp ; saving RBP to stack (prologue) mov rbp, rsp ; setting new RBP (prologue) mov DWORD PTR [rbp-4], edi ; args (num) mov eax, DWORD PTR [rbp-4] imul eax, DWORD PTR [rbp-4] pop rbp ; loads RBP original value (epilogue ) ret ; returns to previous location (epilogue) 6
  • 7. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Tools (Static Analysis) Dissembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. Examples - • Interactive Disassembler (IDA) • OllyDbg is a 32-bit assembler level analyzing debugger • Radare2 • Objdump 7
  • 8. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Tools (Dynamic Analysis) Debuggers offers more sophisticated functions compared to disassemblers such as: • Running a program step by step (single-stepping). • Stopping (breaking) (pausing the program to examine the current state)by means of a breakpoint. • Tracking the values of variables(registers). • Some debuggers have the ability to modify program state while it is running. • It may also be possible to continue execution at a different location in the program to bypass a crash or logical error. • The same functionality which makes a debugger useful for eliminating bugs allows it to be used as a software cracking tool to evade copy protection, digital rights management, and other software protection features. 8
  • 9. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Applications (legal) • Functioning principle Advancements • Application Analysis • Malware Analysis • Interoperability Analysis • Vulnerability Analysis • Exploit Development for research or testing purpose (after public disclosure of vulnerability) 9
  • 10. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Applications (illegal) • Patching software to defeat copy protection • Key-Generator development • Advanced Malwares, viruses, trojan horses or any other type of malicious applications. 10
  • 11. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Example (exploit development) • Verify bug (fuzzing) • Calculate offset for Instruction pointer register (EIP) • Search for reliable jmp/call instruction pointing to our input data • Check for bad characters ( 0x00, …...... , 0xFF ) • Write/Generate shellcode (encode if required) • Add few NOP instructions (0x90) between EIP offset and shellcode, provides extra space in memory for shellcode decoding without truncating itself. • Deploy and test exploit 11
  • 12. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Security Mitigations Security mitigations can be added during SDLC for securing applications, off course these can be bypassed but they minimizes the risks of remote code execution (RCE) in the developed application. Examples - • Address space layout randomization (ASLR). • Data execution prevention (DEP). • Canaries (canary words) are known values that are placed between a buffer and control data on the stack to monitor buffer overflows. 12
  • 13. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur Conclusion • Reverse engineering is more like offense for better defense. • Analysis of applications helps us to understand working of mitigation techniques. • The accuracy and amount of information that can be deduced varies, but it is certainly possible to obtain functioning principles concepts. • Reverse-engineering is used for many purposes, as a learning tool, as a way to make new, compatible products, cheaper than what's currently on the market. • software interoperability or to bridge data between different operating systems or databases. • Analysis of different malicious applications (malware, ransomwares, etc.). • Tracing malicious applications back to its source. 13
  • 14. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur References • Books: • Reverse Engineering for Beginners by Dennis Yurichev • Reversing: Secrets of Reverse Engineering by Eldad Eilam • Sites: • Wikipedia • Corelan Team 14
  • 15. National Conference on Recent Innovation in Software and Computer (NCTISC-2018) March 10-11, 2018, Jaipur 15 Queries ? ? ? ?