1 / 9

Code Obfuscation Midterm Presentation

Code Obfuscation Midterm Presentation. Yakkob Iyun Guided by Eitan Koch. Topics to be discussed. Problem Definition Project Purpose – Building Obfuscator Obfuscation Quality Obfuscation Using Opaque Predicates Future Planning. Problem Definition.

eellen
Download Presentation

Code Obfuscation Midterm Presentation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Code Obfuscation Midterm Presentation Yakkob Iyun Guided by Eitan Koch

  2. Topics to be discussed • Problem Definition • Project Purpose – Building Obfuscator • Obfuscation Quality • Obfuscation Using Opaque Predicates • Future Planning

  3. Problem Definition • All programming languages generate output files (binaries , byte code files ect.) that are distributed throughout the internet. • These output files can be reverse engineered. So we need to Defend our intellectual property in a way that minimized the additional overhead resources Lets Obfuscate our code!!!

  4. Project purpose - Building Obfuscator • Creating an application that for a given source code , generates an obfuscated one that has the exact same functionality as the original one. Compilation Output Source code Internet (Server – Client) Decopmilation Obfuscated Source code Obfuscated Source code Application Execute Deobfuscation Compilation Output Source code

  5. Obfuscation Quality • Potency: How much obscurity it adds to the Program • Resilience: How difficult is it to break for an automatic deobfuscator • Stealth: How well the obfuscated code blends with the rest of the program • Cost: How much computation overhead it adds to the obfuscated application

  6. Obfuscation Using Opaque Predicate • Opaque Predicate : an expression that evaluates to either "true" or "false“ , for which its outcome is known to the obfuscator and is very difficult and even impossible for the deobfuscator to evaluate , without running the application itself. • Deducing the real control flow by the deobfuscator of the application is a difficult task • We will introduce Opaque Predicate to change and complicate the control flow mechanism

  7. Opaque Predicate Benefits: • Increased number of predicates to deduce • Inserting Dead and irrelevant code: • Introduce a Graph ADT to the code. • Introduce a code that manipulates the Graph. • Building Opaque Predicate with User Input names according to specific invariants that the graph structure holds. T Dead Code Opaque Predicate Manufacture:

  8. Opaque Predicate Benefits: • The Introduced Graph ADT code and the code that manipulates the Graph , blends well with normal used applications. • The predicate names are user defined so they resemble the given code. • The added Predicate are easily to deduce by the obfuscator but hard to deduce by the deobfuscator. • Elevated execution cost – both memory consumption and calculation overhead. Opaque Predicate disadvantage:

  9. Future Planning • Implementing The Application ~10 Weeks • Making Final Presentation ~ 1 Week • Final Presentation - 15/3/2009

More Related