Presentation is loading. Please wait.

Presentation is loading. Please wait.

2  Problem Definition  Project Purpose – Building Obfuscator  Obfuscation Quality  Obfuscation Using Opaque Predicates  Future Planning.

Similar presentations


Presentation on theme: "2  Problem Definition  Project Purpose – Building Obfuscator  Obfuscation Quality  Obfuscation Using Opaque Predicates  Future Planning."— Presentation transcript:

1

2 2  Problem Definition  Project Purpose – Building Obfuscator  Obfuscation Quality  Obfuscation Using Opaque Predicates  Future Planning

3 3  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  Creating an application that for a given source code, generates an obfuscated one that has the exact same functionality as the original one. 4 Source code Obfuscated Source code Compilation Output Internet (Server – Client) Compilation Output Application Execute Source code Obfuscated Source code Deobfuscation Decopmilation

5  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  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 6

7 I. Increased number of predicates to deduce II. 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. 7 Dead Code T

8 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. 8

9  Implementing The Application ~10 Weeks  Making Final Presentation ~ 1 Week  Final Presentation - 15/3/2009


Download ppt "2  Problem Definition  Project Purpose – Building Obfuscator  Obfuscation Quality  Obfuscation Using Opaque Predicates  Future Planning."

Similar presentations


Ads by Google