• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
OIVM
 

OIVM

on

  • 420 views

This is presentation I made for the final presentation on the minor project for college.

This is presentation I made for the final presentation on the minor project for college.

Statistics

Views

Total Views
420
Views on SlideShare
221
Embed Views
199

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 199

http://adwiteeya.com 198
http://plus.url.google.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    OIVM OIVM Presentation Transcript

    • 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