SlideShare une entreprise Scribd logo
1  sur  15
Code Obfuscation for Protection Against
Assembly Level Code Reversing
Group 10
Final Minor Internal Presentation

Adwiteeya Agrawal 08496303110
Kritika Sobti 10296303110
Code Obfuscation for Protection Against Assembly Level Code Reversing
Contents
 Problem Description
 Our Approach
 System Design
 Implementation
 Tests
 Results
 Ratings
 References
 Future Scope
Code Obfuscation for Protection Against Assembly Level Code Reversing
Problem Description

A model needs to be developed that can slow
down cracking/reversing of software.

Code Obfuscation for Protection Against Assembly Level Code Reversing
Related Work
 Copyright Laws
 Media Protection Schemes.
 Serial Number based Authentication.
 Hardware Based Serial No authentication.
 Software as a service

 Antireversing – Program Encryption, Anti – Debugging,
Removing Info Disclosures
Our Approach

Inlining a VM with a customized instruction set
and porting a packer + encryption routine
over it.

Code Obfuscation for Protection Against Assembly Level Code Reversing
System Design
 7 Registers, 32 Bits.
 65,536 * 4 bytes stack.
 Header free, read only Rom Input.
 183 Instructions in 11 categories. One Byte format.
 RUN to execute fetch, decode and execute.

 Special Instruction to execute realloc for runtime expansion
of code.
Code Obfuscation for Protection Against Assembly Level Code Reversing
Implementation
 Following routines were ported.
Addition
Array Implementation
Loop
Linear Search
Substitution Cipher
On the Fly Code Decryption
On the Fly Code Unpacking(POC)
Code Obfuscation for Protection Against Assembly Level Code Reversing
Flow of Code
On the Fly Expansion

ALGORITHM
Enter Elements of the Dictionary on stack
Read Rom to get Index

Get Value from the Stack and place new
code on the stack
Write Rom
Tests
• Q1 : Have you reversed an Obfuscated code
before ?
• Q2 : Was the code structure familiar to you?
• Q3 : Were you able to Reverse the program ?
• Q4 : Were you able to Patch the program ?
• Q5 : Were you able to identify that this is a VM ?
• Q6 : Would it be faster if you knew this was a VM
beforehand?
Code Obfuscation for Protection Against Assembly Level Code Reversing
Results
6

5

4

3

NO

YES
2

1

0
Question 1

Question 2

Question 3

Question 4

Question 5

Question 6

Code Obfuscation for Protection Against Assembly Level Code Reversing
How Tough ?

Rated an average of 8.7/10 difficulty

Code Obfuscation for Protection Against Assembly Level Code Reversing
References | TOP 4
• The Enlightenment(2) :
Reversing Secrets Of Reverse Engineering, The art of
Assembly
• Getting Started :
http://en.wikibooks.org/wiki/Creating_a_Virtual_Mach
ine/Register_VM_in_C
• Similar but Minimal Approach :
http://crackmes.de/users/opcode0x90/crackme_nop_v
m
Code Obfuscation for Protection Against Assembly Level Code Reversing
Future Scope







Porting an existing Anti - Debugging Routine.
A randomizer function.
Porting Multiple VMs
Writing a compiler
Byte Translation : Emulator
Porting more complex but critical functions to
OIVM
Code Obfuscation for Protection Against Assembly Level Code Reversing
The End

Thanks

Contenu connexe

Tendances

Tendances (20)

How to Connect SystemVerilog with Octave
How to Connect SystemVerilog with OctaveHow to Connect SystemVerilog with Octave
How to Connect SystemVerilog with Octave
 
Pascal Programming Language
Pascal Programming LanguagePascal Programming Language
Pascal Programming Language
 
Erlang OTP
Erlang OTPErlang OTP
Erlang OTP
 
Erlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent WorldErlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent World
 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflow
 
Buffer Overflow
Buffer OverflowBuffer Overflow
Buffer Overflow
 
Basic buffer overflow part1
Basic buffer overflow part1Basic buffer overflow part1
Basic buffer overflow part1
 
1 hour dive into Erlang/OTP
1 hour dive into Erlang/OTP1 hour dive into Erlang/OTP
1 hour dive into Erlang/OTP
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python Programming
 
System verilog important
System verilog importantSystem verilog important
System verilog important
 
Erlang For Five Nines
Erlang For Five NinesErlang For Five Nines
Erlang For Five Nines
 
Compilation
CompilationCompilation
Compilation
 
IDAPRO
IDAPROIDAPRO
IDAPRO
 
C programming session7
C programming  session7C programming  session7
C programming session7
 
Socket Programming In Python
Socket Programming In PythonSocket Programming In Python
Socket Programming In Python
 
Preprocessor directives in c language
Preprocessor directives in c languagePreprocessor directives in c language
Preprocessor directives in c language
 
Buffer overflow attacks
Buffer overflow attacksBuffer overflow attacks
Buffer overflow attacks
 
Functial Verification Tutorials
Functial Verification TutorialsFunctial Verification Tutorials
Functial Verification Tutorials
 
Anatomy of a Buffer Overflow Attack
Anatomy of a Buffer Overflow AttackAnatomy of a Buffer Overflow Attack
Anatomy of a Buffer Overflow Attack
 
Jonathan bromley doulos
Jonathan bromley doulosJonathan bromley doulos
Jonathan bromley doulos
 

Similaire à OIVM

Creating Secure Applications
Creating Secure Applications Creating Secure Applications
Creating Secure Applications
guest879f38
 
Native client (Евгений Эльцин)
Native client (Евгений Эльцин)Native client (Евгений Эльцин)
Native client (Евгений Эльцин)
Ontico
 
Security Challenges of Antivirus Engines, Products and Systems
Security Challenges of Antivirus Engines, Products and SystemsSecurity Challenges of Antivirus Engines, Products and Systems
Security Challenges of Antivirus Engines, Products and Systems
Antiy Labs
 
20191116 DevFest 2019 The Legacy Code came to stay (El legacy vino para queda...
20191116 DevFest 2019 The Legacy Code came to stay (El legacy vino para queda...20191116 DevFest 2019 The Legacy Code came to stay (El legacy vino para queda...
20191116 DevFest 2019 The Legacy Code came to stay (El legacy vino para queda...
Antonio de la Torre Fernández
 

Similaire à OIVM (20)

Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1  Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1
 
Medium Trust for Umbraco
Medium Trust for UmbracoMedium Trust for Umbraco
Medium Trust for Umbraco
 
Network Security Open Source Software Developer Certification
Network Security Open Source Software Developer CertificationNetwork Security Open Source Software Developer Certification
Network Security Open Source Software Developer Certification
 
Typhoon Managed Execution Toolkit
Typhoon Managed Execution ToolkitTyphoon Managed Execution Toolkit
Typhoon Managed Execution Toolkit
 
Mocking vtcc3 - en
Mocking   vtcc3 - enMocking   vtcc3 - en
Mocking vtcc3 - en
 
Search for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code AnalysisSearch for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code Analysis
 
The Hacking Games - Operation System Vulnerabilities Meetup 29112022
The Hacking Games - Operation System Vulnerabilities Meetup 29112022The Hacking Games - Operation System Vulnerabilities Meetup 29112022
The Hacking Games - Operation System Vulnerabilities Meetup 29112022
 
Creating Secure Applications
Creating Secure Applications Creating Secure Applications
Creating Secure Applications
 
Native client (Евгений Эльцин)
Native client (Евгений Эльцин)Native client (Евгений Эльцин)
Native client (Евгений Эльцин)
 
Security Challenges of Antivirus Engines, Products and Systems
Security Challenges of Antivirus Engines, Products and SystemsSecurity Challenges of Antivirus Engines, Products and Systems
Security Challenges of Antivirus Engines, Products and Systems
 
Secure JEE Architecture and Programming 101
Secure JEE Architecture and Programming 101Secure JEE Architecture and Programming 101
Secure JEE Architecture and Programming 101
 
SAST, CWE, SEI CERT and other smart words from the information security world
SAST, CWE, SEI CERT and other smart words from the information security worldSAST, CWE, SEI CERT and other smart words from the information security world
SAST, CWE, SEI CERT and other smart words from the information security world
 
20191116 DevFest 2019 The Legacy Code came to stay (El legacy vino para queda...
20191116 DevFest 2019 The Legacy Code came to stay (El legacy vino para queda...20191116 DevFest 2019 The Legacy Code came to stay (El legacy vino para queda...
20191116 DevFest 2019 The Legacy Code came to stay (El legacy vino para queda...
 
JSCONF 2018 - Baking security into DevOps - a tale of hunting down bugs befor...
JSCONF 2018 - Baking security into DevOps - a tale of hunting down bugs befor...JSCONF 2018 - Baking security into DevOps - a tale of hunting down bugs befor...
JSCONF 2018 - Baking security into DevOps - a tale of hunting down bugs befor...
 
Deobfuscation and beyond (ZeroNights, 2014)
Deobfuscation and beyond (ZeroNights, 2014)Deobfuscation and beyond (ZeroNights, 2014)
Deobfuscation and beyond (ZeroNights, 2014)
 
Security as Code: DOES15
Security as Code: DOES15Security as Code: DOES15
Security as Code: DOES15
 
How-To Find Malicious Backdoors and Business Logic Vulnerabilities in Your Code
How-To Find Malicious Backdoors and Business Logic Vulnerabilities in Your CodeHow-To Find Malicious Backdoors and Business Logic Vulnerabilities in Your Code
How-To Find Malicious Backdoors and Business Logic Vulnerabilities in Your Code
 
Making DevSecOps a Reality in your Spring Applications
Making DevSecOps a Reality in your Spring ApplicationsMaking DevSecOps a Reality in your Spring Applications
Making DevSecOps a Reality in your Spring Applications
 
Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1
 
Clean Infrastructure as Code
Clean Infrastructure as Code Clean Infrastructure as Code
Clean Infrastructure as Code
 

Dernier

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 

Dernier (20)

Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 

OIVM

  • 1. Code Obfuscation for Protection Against Assembly Level Code Reversing Group 10 Final Minor Internal Presentation Adwiteeya Agrawal 08496303110 Kritika Sobti 10296303110 Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 2. Contents  Problem Description  Our Approach  System Design  Implementation  Tests  Results  Ratings  References  Future Scope Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 3. Problem Description A model needs to be developed that can slow down cracking/reversing of software. Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 4. Related Work  Copyright Laws  Media Protection Schemes.  Serial Number based Authentication.  Hardware Based Serial No authentication.  Software as a service  Antireversing – Program Encryption, Anti – Debugging, Removing Info Disclosures
  • 5. Our Approach Inlining a VM with a customized instruction set and porting a packer + encryption routine over it. Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 6. System Design  7 Registers, 32 Bits.  65,536 * 4 bytes stack.  Header free, read only Rom Input.  183 Instructions in 11 categories. One Byte format.  RUN to execute fetch, decode and execute.  Special Instruction to execute realloc for runtime expansion of code. Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 7. Implementation  Following routines were ported. Addition Array Implementation Loop Linear Search Substitution Cipher On the Fly Code Decryption On the Fly Code Unpacking(POC) Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 9. On the Fly Expansion ALGORITHM Enter Elements of the Dictionary on stack Read Rom to get Index Get Value from the Stack and place new code on the stack Write Rom
  • 10. Tests • Q1 : Have you reversed an Obfuscated code before ? • Q2 : Was the code structure familiar to you? • Q3 : Were you able to Reverse the program ? • Q4 : Were you able to Patch the program ? • Q5 : Were you able to identify that this is a VM ? • Q6 : Would it be faster if you knew this was a VM beforehand? Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 11. Results 6 5 4 3 NO YES 2 1 0 Question 1 Question 2 Question 3 Question 4 Question 5 Question 6 Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 12. How Tough ? Rated an average of 8.7/10 difficulty Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 13. References | TOP 4 • The Enlightenment(2) : Reversing Secrets Of Reverse Engineering, The art of Assembly • Getting Started : http://en.wikibooks.org/wiki/Creating_a_Virtual_Mach ine/Register_VM_in_C • Similar but Minimal Approach : http://crackmes.de/users/opcode0x90/crackme_nop_v m Code Obfuscation for Protection Against Assembly Level Code Reversing
  • 14. Future Scope       Porting an existing Anti - Debugging Routine. A randomizer function. Porting Multiple VMs Writing a compiler Byte Translation : Emulator Porting more complex but critical functions to OIVM Code Obfuscation for Protection Against Assembly Level Code Reversing